加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 具有ActiveAdmin和Rails 4的多个HABTM属性:数

发布时间:2020-12-16 22:48:22 所属栏目:百科 来源:网络整理
导读:我有以下型号: class Programme ActiveRecord::Base has_and_belongs_to_many :nationalities,class_name: 'Nation',join_table: 'nationalities_nations' has_and_belongs_to_many :destinations,join_table: 'destinations_nations' accepts_nested_attri
我有以下型号:
class Programme < ActiveRecord::Base

  has_and_belongs_to_many :nationalities,class_name: 'Nation',join_table: 'nationalities_nations'
  has_and_belongs_to_many :destinations,join_table: 'destinations_nations'

  accepts_nested_attributes_for :nationalities
  accepts_nested_attributes_for :destinations

end

class Nation < ActiveRecord::Base

  has_and_belongs_to_many :nationality_programmes,class_name: 'Programme',join_table: 'nationalities_nations'
  has_and_belongs_to_many :destination_programmes,join_table: 'destinations_nations'

  accepts_nested_attributes_for :nationality_programmes
  accepts_nested_attributes_for :destination_programmes

end

在有效的管理员中,我有以下配置,可以正确地选择任何现有的存储国家/地区引用(见屏幕截图).

ActiveAdmin.register Programme do

  permit_params :title,destinations_ids: [:id],nationalities_ids: [:id]


  form do |f|
    f.actions
    f.inputs 'Countries / Regions' do
      f.input :nationalities,:as => :select,:input_html => {:multiple => true}
      f.input :destinations,:input_html => {:multiple => true}
      f.input :title
    end
    f.actions
  end
end

但是,当我选择其他国家/地区时,表单成功保存,但是不存储引用.

这是我的架构:

ActiveRecord::Schema.define(version: 20140522131219) do

  create_table "destinations_nations",force: true do |t|
    t.integer "programme_id",null: false
    t.integer "nation_id",null: false
  end

  create_table "levels_programmes",null: false
    t.integer "level_id",null: false
  end

  create_table "nationalities_nations",null: false
  end

  create_table "nations",force: true do |t|
    t.string   "slug",limit: 2
    t.string   "name"
  end

  create_table "programmes",force: true do |t|
    t.string   "title"
  end

end

更新:交叉发布这个问题在active_admin#3196这是现在关闭,谢谢格雷戈里奥的帮助.

解决方法

我通过改变工作
permit_params :title,nationalities_ids: [:id]

permit_params :title,destination_ids: [],nationality_ids: []

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读