使用Formtastic作为Rails3中habtm关联的复选框

时间:2012-01-23 20:39:51

标签: ruby-on-rails forms checkbox has-and-belongs-to-many formtastic

我按照Railscast #17 HABTM Checkboxes (revised)中的说明获取此代码,以使用has_and_belongs_to_many关联向项目添加服务:

<% Service.all.each do |service| %>
     <%= hidden_field_tag "project[service_ids][]", nil %>
     <%= check_box_tag "project[service_ids][]", service.id, @project.service_ids.include?(service.id), id: dom_id(service) %>
     <%= label_tag dom_id(service), service.name %><br />
<% end %>

这是正常的,但我想使用Formtastic生成代码,以保持格式与页面的其余部分一致。视频提到Formtastic可以很容易地做到这一点,但我无法弄清楚我的生活代码。

我的猜测是做这样的事情:

<%= semantic_form_for :services do |f| %>
    <%= f.input :name, :as => :check_boxes, :collection => Service.find(:all) %>
<% end %>

并生成服务列表,但选中框不会执行任何操作。我知道最后一些代码需要以某种方式链接到projects_services关联,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:9)

好吧,我试图让它变得更难。这就是我所要做的一切:

<%= f.input :services, :as => :check_boxes %>