ruby-on-rails - Rails 3 - 嵌套表单有很多通过与复选框的关联

标签 ruby-on-rails ruby forms ruby-on-rails-3 has-many-through

我正在使用一个有很多直通关联,这样一篇文章就可以“保存”到多个部分,这种关系称为位置。在位置表中还有一个“默认”列( bool 值),这允许用户指示哪个部分是默认部分。

模型如下:

class Article < ActiveRecord::Base
  has_many :locations
  has_many :sections, :through => :locations

  def default_location
    self.sections.where('locations.default = 1').first
  end
end

class Location < ActiveRecord::Base
  belongs_to :article
  belongs_to :section
end

class Section < ActiveRecord::Base
  has_many :locations
  has_many :articles, :through => :locations
end

所以在我看来:

<%= form_for(@article) do |f| %>
...
  <p class="field">
     <h3>Locations</h3>
     <ul>
      <% @sections.each do |section| %>
        <li><%= radio_button_tag ???, section.id, :checked => @article.default_location == section %> <%= check_box_tag 'article[section_ids][]', section.id, @article.section_ids.include?(section.id), :id => dom_id(section) %><%= label_tag dom_id(section), section.name %></li>
      <% end %>
     </ul>
   </p>
...
<% end %>

到目前为止,我可以很好地保存和更新位置,但我不确定如何为保存的每个位置分配默认字段。我为每个部分添加了一个单选按钮,以便用户可以选择默认设置,但我不确定如何将它们联系在一起。

任何想法将不胜感激!谢谢。

最佳答案

不确定为什么需要单选按钮和复选框。尝试添加 hidden_​​field_tag 和 check_box_tag:

  <p class="field">
     <h3>Locations</h3>
     <%= hidden_field_tag "article[section_ids][]", "" %>
     <ul>
      <% @sections.each do |section| %>
        <li>
          <%= check_box_tag :section_ids, section.id, @article.section_ids.include?(section.id), :id => dom_id(section), :name => 'article[section_ids][]' %>
          <%= label_tag dom_id(section), section.name %>
        </li>
      <% end %>
     </ul>
   </p>

关于ruby-on-rails - Rails 3 - 嵌套表单有很多通过与复选框的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480841/

相关文章:

ruby-on-rails - 如何将构建在 rails 上的本地 postgresql 数据库推送到 heroku?

ruby-on-rails - 我日志中的 [1m[35m] 是什么,我该如何让它消失?

ruby - Watir 是否在 ruby​​ 1.9.1 下工作?

css - 向导航栏模态添加表单会增加间距(Bootstrap)

javascript - 将 link_to 从 View 传递到 javascript?

ruby-on-rails - rails : Custom text for rails form_for label

ruby-on-rails - Rails 加载模块链时遇到问题

ruby - 编写 ruby​​ 代码的正确方法是什么?

php - 为什么要使用隐藏字段来检测表单提交?

javascript - 使用 GET 提交表单时不要在查询字符串中包含隐藏字段