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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 具有ActiveAdmin和Rails 4的多个HABTM属性:数据未保存前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下型号:
  1. class Programme < ActiveRecord::Base
  2.  
  3. has_and_belongs_to_many :nationalities,class_name: 'Nation',join_table: 'nationalities_nations'
  4. has_and_belongs_to_many :destinations,join_table: 'destinations_nations'
  5.  
  6. accepts_nested_attributes_for :nationalities
  7. accepts_nested_attributes_for :destinations
  8.  
  9. end

  1. class Nation < ActiveRecord::Base
  2.  
  3. has_and_belongs_to_many :nationality_programmes,class_name: 'Programme',join_table: 'nationalities_nations'
  4. has_and_belongs_to_many :destination_programmes,join_table: 'destinations_nations'
  5.  
  6. accepts_nested_attributes_for :nationality_programmes
  7. accepts_nested_attributes_for :destination_programmes
  8.  
  9. end

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

  1. ActiveAdmin.register Programme do
  2.  
  3. permit_params :title,destinations_ids: [:id],nationalities_ids: [:id]
  4.  
  5.  
  6. form do |f|
  7. f.actions
  8. f.inputs 'Countries / Regions' do
  9. f.input :nationalities,:as => :select,:input_html => {:multiple => true}
  10. f.input :destinations,:input_html => {:multiple => true}
  11. f.input :title
  12. end
  13. f.actions
  14. end
  15. end

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

这是我的架构:

  1. ActiveRecord::Schema.define(version: 20140522131219) do
  2.  
  3. create_table "destinations_nations",force: true do |t|
  4. t.integer "programme_id",null: false
  5. t.integer "nation_id",null: false
  6. end
  7.  
  8. create_table "levels_programmes",null: false
  9. t.integer "level_id",null: false
  10. end
  11.  
  12. create_table "nationalities_nations",null: false
  13. end
  14.  
  15. create_table "nations",force: true do |t|
  16. t.string "slug",limit: 2
  17. t.string "name"
  18. end
  19.  
  20. create_table "programmes",force: true do |t|
  21. t.string "title"
  22. end
  23.  
  24. end

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

解决方法

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

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

猜你在找的Ruby相关文章