我有这样的观点:
<h2>Select the type of Project</h2>
<%= form_tag('/select') do -%>
<label>Select A Type Of Project</label><%= select_tag "project_type", options_from_collection_for_select(ProjectType.all, "name", "name"),:prompt => "Select Project Type" %>
<%= submit_tag 'Next' %>
<% end -%>
这里我只是选择一个特定类型的项目并提交。
HTML输出是:
<select id="project_type" name="project_type">
<option value="">Select Project Type</option>
<option value="Sales">Sales</option>
</select>
现在,我想根据所选项目的类型呈现特定模板。 如果值=“Sales”,我想呈现模板sales.html.erb。
我应该在名为select的控制器操作中添加什么。仪式现在是空的。
谢谢:)
答案 0 :(得分:2)
像这样的东西
def select
view_to_render = case params[:project_type]
when 'name1'
#do smth
'view_name'
else
# do smth else
'another_view'
end
respond_to do |format|
format.html { render view_to_render }
end
end
答案 1 :(得分:2)
根据您的操作添加此
template = params[:project_type] || 'new'
respond_to do |format|
format.html { render template }
format.json { render json: @projects }
end
'new'方法被假定为默认方法