0

我在页面顶部有一个 select_tag 字段,并尝试获取所选选项以根据用户选择更改页面上的内容。

我是一名学习者,已经找到了一些信息,但没有详细的示例和关于如何最好地实现和实施的良好解释。

场景如下: 我在项目和文档之间有一个 belongs_to 关联,并且在我的一个列出文档的视图中,我只想在选择标记中显示属于当前选定项目的所有文档。

想到将选定项目的 id 传递给文档索引操作,该操作仅通过 link_to 标记显示指定项目 id 的文档。因此,这将在视图中使用正确的文档刷新页面,但我认为这不是正确的方法,并且我不能使用 link_to 标签作为 select_tag 中的选项。任何人都可以帮助并提供一个例子吗?

4

2 回答 2

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 %>
于 2012-06-26T12:40:18.273 回答
0

我建议使用 form.select 方法和 options_for_select ,如

f.select :attribute, options_for_select(@array, default_value)

在您的控制器中,您应该使用提交的参数创建或更新

n = record.new(:attribute => params[:attribute])

玩得开心

于 2012-06-26T13:55:01.593 回答