私は、ネストされたフォームがたくさんある典型的なモデルコントローラーの関係を持っています。
詳細は次のとおりです:-
article.rb :-
belongs_to :author
accepts_nested_attributes_for :author
著者.rb :-
attr_accessible :first_name, :last_name
has_many :articles
project.rb
has_many :work_pairs
has_many :source_articles, :through => :work_pairs
accepts_nested_attributes_for :work_pairs
accepts_nested_attributes_for :source_articles
プロジェクト/new.html.slim
= semantic_form_for @project, :html => { :id => 'project_form' } do |form|
= form.inputs do
= form.input :user_id, :as => :hidden, :value => current_user.id
= form.semantic_fields_for :source_articles do |article|
= article.input :name_article, :label => "Name of the Article"
= article.semantic_fields_for :author do |author|
= author.input :first_name
= author.input :last_name
projects_controller.rb
def new
return unless require_login
new! do
@title = t('projects.new.title')
@project.rewards.build
@project.work_pairs.build
@project.source_articles.build
@project.source_articles.first.build_author
@project.source_articles.first.build_publisher
end
end
ただし、著者のレコードがデータベースに保存されていない場合でも、エラーは表示されません。
これを実行してコンソールから作成者にアクセスしようとすると:-
p = Project.first
p.source_articles.first.author
出力として nil が表示されます。何が問題なのか教えてもらえますか?