1

モデルSubjectとネストされたモデルがありますLessons

不明な属性の問題が発生しています:subject_id

Rails 3 Nested Models unknown attribute Errorで提案されているさまざまな解決策を試しましたが、まだエラーが発生します。

私はRailsにかなり慣れていないので、何がうまくいかなかったのかわかりません。誰かが私を助けてくれれば幸いです。

これが私の関連ファイルです。

対象モデル

  attr_accessible :subjectCode, :subject_id

  has_many :lessons, :dependent => :destroy
  accepts_nested_attributes_for :lessons, :reject_if => lambda { |a| a[:content].blank?     }, :allow_destroy => true

end

レッスンモデル

  attr_accessible :lessonName
  belongs_to :subject

サブジェクト コントローラー

def show
  @subject = Subject.find(params[:id])
end

def new
  @subject = Subject.new
  @lesson = @subject.lessons.build
end

def create
  @subject = Subject.new(params[:subjectCode])
  if @subject.save
    redirect_to @subject, :notice => "Successfully created subject."
  else
    render :action => 'new'
  end
end

件名フォーム

<%= form_for @subject do |f| %>
<%= f.error_messages %>
<p>
  <%= f.label :subjectCode %><br />
  <%= f.text_field :subjectCode %>
</p>
<%= f.fields_for :lessons, @lesson do |builder| %>
<p>    
<%= builder.label :lessonName %> <br/>
<%= builder.text_area :lessonName, :rows=>3 %>
</p>
<% end %>
<p><%= f.submit "Submit" %></p>

ルート.rb

resources :subjects do resources :lessons end
4

1 に答える 1

0

subject_idに属しているため、Lesson モデルに配置するSubject必要があります。accessible にも配置lessons_attributesattr_accessible、Subject モデルにも配置する必要があります。create アクションでサブジェクトを構築するコードは次のようにする必要があると思います。

@subject = Subject.new(params[:subject])、 いいえ

@subject = Subject.new(params[:subjectCode])

これを試して、何かが起こるのを見てください。

于 2012-11-01T18:35:03.770 に答える