Я использую удаленный form_for для своего действия show для извлечения контента на основе параметров, переданных этой формой.
= form_tag modelname_path(@modelname), :id=>"select_content_form", :remote => true, :method => 'get' do
= text_field_tag :content_type, params[:content_type], :id=>"select_content_type"
= submit_tag "submit", :name => nil, :id=>"select_content_submit"
И я изменяю содержимое в контроллере следующим образом:
# Default params to "type1" for initial load
if params[:content_type]
@content_type = params[:content_type];
else
@content_type = "type1"
end
case @content_type
when "type1"
# get the content
@model_content = ...
when "type1"
# get the content
@model_content = ...
Мой вопрос заключается в том, является ли вышеуказанный подход единственным, мы можем установить значения по умолчанию для параметров или мы можем это сделатьв лучшем виде.Это работает, но я хотел бы знать, если это правильный подход.
ОБНОВЛЕНИЕ Основываясь на предложении ниже, я использовал следующее и получил ошибку в строке defaults.merge:
defaults = {:content_type=>"type1"}
params = defaults.merge(params)
@content_type = params[:content_type]