Когда я использую ActiveAdmin для редактирования одного Агентства, я могу выбрать Город и связать его с Агентством. Город связан с Агентством, но город все время дублируется в базе данных.Activeadmin, дублирование has_many records
Мои модели:
# agency.rb
class Agency < ActiveRecord::Base
has_many :agency_cities
has_many :cities, through: :agency_cities
accepts_nested_attributes_for :cities, allow_destroy: true
end
# city.rb
class City < ActiveRecord::Base
has_many :agency_cities
has_many :agencies, through: :agency_cities
end
# AgencyCity.rb
class AgencyCity < ActiveRecord::Base
belongs_to :agency
belongs_to :city
end
Я прочитал документ из Activeadmin
и добавил [:id] permit_parameter
, но я до сих пор есть проблема, я очень смущен.
# admin/agency.rb
ActiveAdmin.register Agency do
permit_params :name, :picture,
cities_attributes: [:id, :name, :description, :_destroy]
form do |f|
f.inputs "Agencies" do
f.input :picture, as: :file
f.input :creation_date, label: 'Creation Date'
f.input :name, label: 'Name'
end
end
f.inputs do
f.has_many :cities do |k|
k.input :name, label: 'City',
as: :select,
collection: City.all.map{ |u| "#{u.name}"}
k.input :_destroy, as: :boolean
end
end
f.actions
end
С 'collection: City.all.map {| u | [u.name, u.id]} ' Значения параметров - это id, а не название города. Когда я обновляю агентство с городом, запись по-прежнему дублируется, но новая запись имеет этот HTML '<параметр значение =«3»> 1' (я предполагаю 1 является идентификатором дублируется запись) Проблема, вероятно, в строке кода, который вы указали, я буду работать над этим, спасибо – Matt