mam następujące modele:Wiele właściwości HABTM z ActiveAdmin i Rails 4: Dane nie zostały zapisane
class Programme < ActiveRecord::Base
has_and_belongs_to_many :nationalities, class_name: 'Nation', join_table: 'nationalities_nations'
has_and_belongs_to_many :destinations, class_name: 'Nation', join_table: 'destinations_nations'
accepts_nested_attributes_for :nationalities
accepts_nested_attributes_for :destinations
end
i
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, class_name: 'Programme', join_table: 'destinations_nations'
accepts_nested_attributes_for :nationality_programmes
accepts_nested_attributes_for :destination_programmes
end
w Active Administrator mam następującą konfigurację, która wstępnie wybiera dowolny istniejący prawidłowo zapisano numery referencyjne dla kraju (patrz zrzut ekranu).
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, :as => :select, :input_html => {:multiple => true}
f.input :title
end
f.actions
end
end
Jednak po wybraniu innych krajów formularz pomyślnie zapisuje, ale odwołania nie są przechowywane.
To jest mój schemat:
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", force: true do |t|
t.integer "programme_id", null: false
t.integer "level_id", null: false
end
create_table "nationalities_nations", force: true do |t|
t.integer "programme_id", null: false
t.integer "nation_id", 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
Aktualizacja: Trasy pisał ten problem na active_admin#3196 który jest obecnie zamknięty, dzięki pomocy Gregorio.
Gdzie można znaleźć dokumentację dotyczącą rozwiązania? Skąd ten pomysł ? – Defoncesko
Właśnie przyjrzał się dzienniki i zobaczył 'niedozwolonej parametr: destination_ids' Więc activeadmin próbował wysłać ten parametr zamiast ' destinations_ids: [: id] ' –
ok dzięki za opinie – Defoncesko