rails 3.1 select_tag用法

时间:2012-06-26 12:16:14

标签: ruby-on-rails ruby ruby-on-rails-3.1 ruby-on-rails-3.2

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

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

方案如下: 我在项目和文档之间有一个belongs_to关联,在我的一个列出文档的视图中,我想只显示属于select标签中当前所选项目的所有文档。

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

2 个答案:

答案 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])

玩得开心