在rails应用程序中传递select标记值时出现问题

时间:2012-01-18 11:53:42

标签: ruby-on-rails ruby ruby-on-rails-3

new on rails,我在将select_tag值(在视图文件中)传递给控制器​​时遇到问题。

我的视图控制器文件就像

class ProjectStatusController < ApplicationController

  def index
    @projects = Project.find(:all, :select => "name")
  end

  def show
    lookup = params[:project]
    @rows = Project.find_by_lookup(lookup)
  end
end

和查看文件就像

<% form_tag("project_status", :controller => "ProjectStatus", :action => "show",    :method=>'get' ) do %>
<%= select_tag 'project', options_from_collection_for_select(@projects,"id", "name"),:onchange => "this.form.submit();" %>
<% end %>
<% 
if !@rows.nil? 
 @rows.each do |row|
end 
%>
<%= row[:name] %>
<% end %>

我基本上想要实现的是 - 基于select标签中的选定值 我想显示数据库中所选项目的信息(在同一视图页面上)

2 个答案:

答案 0 :(得分:0)

首先,您应该写<%= form_tag而不是<% form_tag

然而,您选择字段idoptions_from_collection_for_select(@projects,"id", "name")

的摘录很奇怪

但是在方法中显示您按字段查找搜索记录

答案 1 :(得分:0)

您可以使用此类内容来解决此问题

     <%= check_box_tag "projectids[]",project.id %>

这将显示每个条目的复选框。并且复选框通过其id链接到项目对象。在控制器方法中,您将收到项目ID。

然后直接使用submit标签将参数传递给方法。