2
讓我們以PeopleController#show動作爲例。如果我需要根據應用程序以幾種不同的方式顯示一個人,該怎麼辦?我有幾個基於請求格式(js,html)的選項,但我真的需要更多。rails - 一個動作,很多模板 - rails的處理方式是什麼?
我可以做出不同的控制器動作,但我更喜歡保持我的控制器基本不變,除非我沒有明智的選擇。另一個想法是擁有一個case語句和一個模板參數,但這似乎也很麻煩(特別是如果某些視圖是針對某些用戶類型的話)。
我的問題是:什麼是軌道的方式來做到這一點?
people_controller.rb
def show
set_partial
respond_to do |format|
format.js
end
end
protected
def set_partial
@template = case params[:template]
when 'small' then 'small_view'
when 'quick' then 'quick_view'
else
'full_view'
end
end
人/ show.js.erb
$('body').append("<%= escape_javascript(render partial: @partial) %>")