0

私は、ネストされたフォームがたくさんある典型的なモデルコントローラーの関係を持っています。

詳細は次のとおりです:-

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 が表示されます。何が問題なのか教えてもらえますか?

4

1 に答える 1