Ассоциация с несколькими записями в одной форме

Мне нужна ваша помощь, чтобы одновременно связать несколько записей (здесь страны) с другой записью (здесь политика) в форме (новая политика).

Мои модели нравятся:

class Retailer < ActiveRecord::Base
   has_many :orders
   has_many :policies, :dependent => :destroy
end

class Policy < ActiveRecord::Base
    has_many :countries
end

class Country < ActiveRecord::Base
    has_many :orders
    has_many :users
    has_one :platform
end

Что я хочу, так это связать мою новую политику, когда я создам ее в его форме, с несколькими странами.

Я хочу использовать флажки в этой форме, чтобы проверить, какую страну я связываю (все страны, хранящиеся в БД, будут там).

Я не знаю, подходит ли моя ассоциация для этого контекста, но я немного потерял, как это сделать.

Может ли кто-нибудь помочь, как это сделать, и показать мне, каким должен быть мой взгляд?

Заранее спасибо.


person Hiro    schedule 13.05.2014    source источник
comment
Я использую версию rails 4 @BroiSatse.   -  person Hiro    schedule 13.05.2014


Ответы (1)


Что я хочу, так это связать мою новую политику, когда я создам ее в его форме, с несколькими странами.

Вы хотите установить belongs_to :country в своей модели policy вместо has_many :countries

class Policy < ActiveRecord::Base
    belongs_to :country
end

и has_many :policies в вашей модели country

class Country < ActiveRecord::Base
    has_many :orders
    has_many :users
    has_one :platform
    has_many :policies
end

Я хочу использовать флажки в этой форме, чтобы проверить, какую страну я связываю (все страны, хранящиеся в БД, будут там).

Для этого вы можете использовать collection_check_boxes.Установив, как указано выше (belongs_to :country), вы получите country_id, который вы будете использовать с collection_check_boxes до check/uncheck нескольких стран.

Надеюсь, поможет!

Обновить

Возможно, я ошибся с ассоциациями. В вашем случае это has_and_belongs_to_many.

class Policy < ActiveRecord::Base

has_and_belongs_to :countries

end

class Country < ActiveRecord::Base

has_many :orders
has_many :users
has_one :platform
has_and_belongs_to_many :policies

end
person Pavan    schedule 13.05.2014
comment
@ Ithy Конечно, вы правы! Вы хотите одну политику с одной страной или одну политику со многими странами? - person Pavan; 13.05.2014
comment
Одна политика со многими странами и делать это в одинаковой форме. @паван - person Hiro; 13.05.2014
comment
@Ithy Попробуйте. Я думаю, вы можете проверить несколько стран. - person Pavan; 13.05.2014
comment
@Ithy Рад помочь :) - person Pavan; 13.05.2014