我在页面顶部有一个select_tag字段,并尝试根据用户选择获取所选内容以更改页面上的内容。
我是一名学习者,并且已经找到了大量信息,但没有详细的例子和关于如何最好地实施和实施的良好解释。
方案如下: 我在项目和文档之间有一个belongs_to关联,在我的一个列出文档的视图中,我想只显示属于select标签中当前所选项目的所有文档。
将所选项目的id传递给文档索引操作,该操作仅通过link_to标记显示指定项目ID的文档。因此,这将在视图中使用正确的文档刷新页面,但我认为这不是正确的方法,并且我不能使用link_to标记作为select_tag中的选项。任何人都可以提供帮助并提供一个例子吗?
答案 0 :(得分:0)
在您的控制器中:
def index
if params[:project]
@documents = Document.where(:project => params[:project]
else
@projects = Project.all
end
end
在您的表单/视图中:
<%= form_tag 'projects', :method => :get do %>
<%= options_from_collection_for_select(@projects, :id, :name)
<%= submit_tag %>
<% end %>
<% if @documents %>
<%= @documents.each do |d| %>
....
<% end >
<% end %>
答案 1 :(得分:0)
我建议使用form.select方法和options_for_select,如
f.select :attribute, options_for_select(@array, default_value)
在您的控制器中,您应该使用提交的参数
创建或更新n = record.new(:attribute => params[:attribute])
玩得开心