Я понимаю, что для использования вложенных атрибутов мне нужно использовать отношение «имеет много» вместо отношения «имеет» и принадлежать многим, поэтому у меня есть следующие настройки:
class Deed < ActiveRecord::Base
has_many :deeds_title_abstracts
has_many :title_abstracts, through: :deeds_title_abstracts
end
class TitleAbstract < ActiveRecord::Base
has_many :deeds_title_abstracts
has_many :deeds, through: :deeds_title_abstracts
accepts_nested_attributes_for :deeds
end
class DeedsTitleAbstracts < ActiveRecord::Base
belongs_to :deeds
belongs_to :title_abstracts
end
В моем контроллере для рефератов заголовков у меня есть
def new
@title_abstract = TitleAbstract.new(params[:title_abstract])
@title_abstract.deeds.build
respond_with(@title_abstract)
end
Я использую кокон в представлении, но я не думаю, что это проблема, так как я получаю эту ошибку:
uninitialized constant TitleAbstract::DeedsTitleAbstract
Я получаю следующее, когда смотрю на него через консоль
@title_abstract =TitleAbstract.new(params[:title_abstract])
=> #<TitleAbstract id: nil, name: nil, due_date: nil, comments: nil, created_at: nil, updated_at: nil>
>> @title_abstract.deeds.build
!! #<NameError: uninitialized constant TitleAbstract::DeedsTitleAbstract>
Я думаю, что что-то не так с моими моделями Has Many Through