将<select>标签中的选定<option>传递给Rails中的下一页

时间:2015-06-15 10:56:10

标签: ruby-on-rails

我创建了一个使用以下代码 &lt; select name =&#34; Books&#34;&gt; &lt;%books.each do | book | %GT; &lt; option value =&#34;&lt;%= book.id%&gt;&#34;&gt; &lt;%= book.name%&gt; &LT; /选项&GT; &LT; /选择&GT; &lt;%end%&gt; 我在同一页面上有一个按钮 &lt; button&gt;查看书籍详细信息&lt; / button&gt; &lt; button&gt;删除图书&lt; / button&gt; 现在我想根据用户点击的按钮将用户带到不同的页面。 当他点击&#34;查看书籍详细信息&#34;时,我想让他登陆/预订/查看 如果他点击&#34;删除书&#34;,我想让他登陆/预订/删除 当我将用户登陆到所需的页面时,我想将用户选择的用户传递到登录页面。像这样的东西 比如,如果用户选择Book-1,并点击&#34;查看书籍详细信息&#34;,我想要 /书/视图?ID = 1 如果用户选择Book-3,并点击&#34;查看书籍详细信息&#34;,我想要 /书/视图?ID = 3 如果用户选择Book-5,并点击&#34;删除图书&#34;,我想要 /电子书/删除?ID = 5 我怎样才能做到这一点 ?

2 个答案:

答案 0 :(得分:0)

根据你的代码,我可以拿出来:

 <%= form_tag "/book/view", method: :get do %>
   <%= select_tag "id", options_for_select(books.collect{|book| ["#{book.name} #{book.id}", book.id] }) %>
   <%= submit_tag "View Book Details" %>
 <% end %>

 <%= form_tag "/book/delete", method: :delete do %>
   <%= select_tag "id", options_for_select(books.collect{|book| ["#{book.name} #{book.id}", book.id] }) %>
   <%= submit_tag "Delete Book" %>
 <% end %>

答案 1 :(得分:0)

您可以使用单选和单隐藏字段来完成此工作。

 //form 1 for view 
 <%= form_tag "/book/view", method: :get do %>
  <%= select_tag "id", options_for_select(books.collect{|book| ["#{book.name} #{book.id}", book.id] }), 
     :onChange => "$('#book_select').val($(this).val())" %>
  <%= submit_tag "View Book Details" %>
 <% end %>

 //form 2 for delete
 <%= form_tag "/book/delete", method: :delete do %>
  <%= hidden_field_tag "book_select", :name => "id" %>
  <%= submit_tag "Delete Book" %>
 <% end %>