使用单选按钮和link_to与Ruby on Rails

时间:2012-02-19 00:42:59

标签: html ruby ruby-on-rails-3 radio-button

这里有一个Rails新手,所以请耐心等待。

我试图在表中列出一堆条目,首先列出每个条目的单选按钮,然后将条目的字段作为文本。

它工作正常,它也显示了我想要它的方式。但问题是每当我使用我的按钮时。我们的想法是让用户选择其中一个单选按钮来选择特定的配方,然后单击页面顶部的通用“添加”,“编辑”,“删除”按钮之一,对所选配方执行相应的操作。 / p>

到目前为止,这是我的代码:

<!--Action buttons at the top of page, supposed to communicate with the radio buttons --> 
<%= link_to("Show", {:action => 'show', :id => recipe.id}, :class => 'action show') %>
<%= link_to("Edit", {:action => 'edit', :id => recipe.id}, :class => 'action edit') %>
<%= link_to("Delete", {:action => 'delete', :id => recipe.id}, :class => 'action delete') %> 

<% @recipes.each do |recipe| %>
<tr>
  <td><%= radio_button_tag 'recipe', recipe, @recipe == recipe %></td>
  <td><%= recipe.total_calories %></td>
  <td><%=........15 more fields
</tr>`
<% end unless @recipes.nil? %>

它给我一个未定义的局部变量或方法`recipe'的错误。我知道为什么我得到错误; Ruby不确切地知道用户通过单选按钮选择的配方。有人可以告诉我如何让单选按钮与动作按钮进行通信吗?

1 个答案:

答案 0 :(得分:1)

最直接的方法是创建一个包含操作作为提交按钮值的表单。类似的东西:

<%= form_tag(PATH_TO_YOUR_CONTROLLER) do %>
   <%= submit_tag("Show") %>
   <%= submit_tag("Edit") %>
   <%= submit_tag("Delete") %>

   RECIPE_LIST_HERE
<% end >

然后您的控制器需要查找提交的操作和配方(我相信这些将在params [:commit]和params [:recipe]下)。