无法获取选择在下一页显示的下拉框值

时间:2014-11-05 14:56:34

标签: ruby-on-rails ruby-on-rails-4

我是铁道新手,很高兴能够学到所有能力。除了下拉框,一切正常。该框正确填充并具有我想要的所有值。但是,当我单击“分配”并进入下一页时,我在下拉列表中选择的值未显示。我知道我需要在链接中引用它,并且我尝试在链接中添加不同的值,但我仍然无法破解代码。

<table class="listing" summary="Subject list">
<tr class="header">
  <th><h3>Procedures</h3></th>
  <th><h3>Notes</h3></th>
  <th><h3>Assign To</h3></th>
</tr>
<% @procedures.each do |procedure| %>
<tr>
  <td><%= procedure.procedure_name %></td>
  <td><%= procedure.note %></td>     

    <td class="actions">  

    <%= collection_select(:post, :employee_id, @individuals, :id, :last_name) %>          

    <%= link_to("Assign", {:controller => 'projects', :action => 'new', :procedure_id => procedure.id}, :class => 'action new') %>

    <%= link_to("Edit", '#', :class => 'action show') %>
    <%= link_to("Delete", '#', :class => 'action edit') %>

    <td>

  </td>
</tr>
<% end %>

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这是一个新页面,因为您点击了一个链接。我猜你想要发生的是它发送信息而不重新加载页面。这是通过AJAX实现的,但Rails将其简化为remote: true

<%= link_to "Assign", {:controller => 'projects', :action => 'new', :procedure_id => procedure.id}, :class => 'action new', remote: true %>

另外,在终端类型中rake路由并替换哈希。我打赌这只是new_projects_path(procedure)

<%= link_to "Assign", new_projects_path(procedure_id: procedure.id), :class => 'action new', remote: true %>

编辑:你想要什么表格。我只是要跳过erb,但这很简单(但我会为你输入等号):

form_for procedure.projects.new, remote: true do |f|

  = f.collection_select... #probably same as before, consult collection_select form helpers docs to be sure
  = f.hidden_field :procedure_id, value: procedure.id
  = f.submit
end

就像我在评论中提到的那样,如果项目#new是嵌套的,你应该可以跳过隐藏的字段。