基本上我尝试使用以下代码在网站上列出我数据库中的所有事件:
<table class="table">
<thead>
<tr>
<th>Event</th>
<th>Join Event?</th>
</tr>
</thead>
<tbody>
<% @events.each do |e| %>
<p>
<tr>
<td>
<div>
<%= e.name %>
</div>
</td>
<td>
<div class="btn-group" data-toggle="buttons-radio">
<button class="btn" class-toggle="btn-success"><i class="icon-ok"></i></button>
<button class="btn btn-danger active" class-toggle="btn-danger"><i class="icon-remove"></i></button>
</div>
</td>
</tr>
</tbody>
<% end %>
</table>
您可以通过单击单选按钮轻松加入活动。现在我的问题是如何在Rails中保存此表单?在此示例中,我已加入(=单击)事件2.将此表单保存回数据库的最佳方法是什么。理想情况下,我有一个&#34;更新&#34;或&#34;保存&#34;网站末尾的按钮,这对我来说就是这样。
但是当我向我的表单添加一个这样的简单提交按钮时
...same code as above
</td>
</tr>
</tbody>
<%= f.submit 'Save form' %>
<% end %>
</table>
然后每次点击我的一个单选按钮时都会触发我的提交按钮。有谁知道解决这个问题的方法吗?
答案 0 :(得分:0)
嗯,做一个event []单选按钮非常简单,当提交时它将提交所选选项的数组。
按钮标签看起来像这样,根据您的班级等进行调整。
<%= radio_button_tag event[], e.id %>
然后控制器看起来像
def create
...
user.events = params[:event] unless params[:event].empty?
user.save
...
end
这个ofcoarse假设您的用户模型中有一列用于存储他们要访问的事件。更灵活的模型是拥有用户:has_many events:through =&gt; user_events。将应用相同的控制器逻辑,除非它看起来像
def create
...
if params[:event]
params[:event].each do |e|
user.user_event.new(:event_id => e)
end
end
....
end