【问题标题】:generate more than one select for HABTM - simple_form and RoR为 HABTM 生成多个选择 - simple_form 和 RoR
【发布时间】:2012-11-15 03:56:47
【问题描述】:

当使用 simple_form 并为 HABTM 关联模型创建字段时,我们会获得一个接受多个选项的选择框。

有没有办法让多个选择框接受一个选项?

如果我们有类别,例如:

Category1 => <select>options...</select>
Category2 => <select>options...</select>
Category3 => <select>options...</select>
etc...

【问题讨论】:

    标签: ruby-on-rails simple-form


    【解决方案1】:

    假设以下模型:

    class Business < ActiveRecord::Base
        has_and_belongs_to_many :categories
    
    class Category < ActiveRecord::Base
        has_and_belongts_to_many :businesses
    

    您可以使用以下 rails helper 为每个类别显示一个选择框。

    - @business.categories.each do |c|
          = f.collection_select :category_ids, Category.all, :id, :name, {:selected => c.id}, {:name => 'business[category_ids][]'}
    

    然后您可以使用 javascript 动态创建新的选择框。 This railscast explains the basics.

    【讨论】:

      【解决方案2】:

      在 simple_form_for 例如州/地区内

      class State < ActiveRecord::Base
        has_and_belongs_to_many :regions
      

      (为了清楚起见,省略了不必要的表单元素)

      <%= simple_form_for @state do |f| %>
          <%= f.association :regions, as: :check_boxes, collection: Region.all.sort, :selected => @state.regions, :label => false %>
      <% end %>
      

      这会将所有区域(显然您可以对其进行过滤)显示为复选框列表,其中已记录的区域将被选中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-16
        • 1970-01-01
        • 1970-01-01
        • 2018-02-01
        • 1970-01-01
        • 2015-12-06
        • 1970-01-01
        相关资源
        最近更新 更多