25. クエリ API の変更(4)
主な変更点(Model)
● 嫌な挙動が直った!
● Rails3だと
○ SELECT * FROM users
WHERE name = ‘じろう’;
● Rails4だと
○ SELECT * FROM users
WHERE name = ‘たろう’ AND name = ‘じろう’;
scopeのチェインで問題になることが多くありました
class User < ActiveRecord::Base
scope :taro, lambda { where(name: ‘たろう’) }
scope :jiro, lambda { where(name: ‘じろう’) }
end
User.taro.jiro.to_sql
34. ルーティングの concern
主な変更点(Controller)
同じルーティングは concern にまとめる
concern :confirmable do
post :confirm
end
resources :users, concern: :confirmable
resources :articles, concern: :confirmable
resources :users do
post :confirm
end
resources :articles do
post :confirm
end
48. コントローラの実装例
注目機能(ActionController::Live)
class SampleController < ApplicationController
include ActionController::Live
def stream
response.headers[‘Content-Type’] = ‘text/event-stream’
10.times do |i|
response.stream.write(“data: Hellonn”)
sleep 1
end
ensure
response.stream.close
end
end