0

我有这样的看法:

<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>

现在,我想根据所选项目的类型呈现特定的模板。如果 value = "Sales" 我想渲染模板 sales.html.erb。

我应该在名为 select 的控制器操作中放入什么。现在它是空的。

谢谢 :)

4

2 回答 2

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
于 2012-12-06T12:58:59.130 回答
2

在您的操作下添加此

template = params[:project_type] || 'new'
respond_to do |format|
  format.html { render template }
  format.json { render json: @projects }
end

'new' 方法被假定为默认方法

于 2012-12-06T12:59:23.237 回答