Rails 3では、新しいrespond_toおよびrespond_with構文を使用して、次のようにします。
class SurveysController < ApplicationController
respond_to :html
def survey
@program_id = params[:program_id]
@participant_id = params[:participant_id]
respond_with [@program_id, @participant_id]
end
end
ビューが表示されると(survey.html.erb)、変数program_id、@participant_idは両方とも適切に設定されます。ただし、次のように、respond_withからそれらを省略した場合:
class SurveysController < ApplicationController
respond_to :html
def survey
@program_id = params[:program_id]
@participant_id = params[:participant_id]
@foo = "foo"
respond_with @foo
end
end
同じ2つのインスタンス変数が引き続きビューに表示されます。つまり、アクションのすべてのインスタンス変数がビュー内から利用可能になります。
質問:respond_to行にインスタンス変数を配置する必要があるのはなぜですか?