2012-04-22 13 views
0

私はRailsを使用していますが、私はこのエラーを回避できないようです。コースには多くのメモがあり、メモはコースに属します。警告:保護された属性を一括して割り当てることはできません:コース

私が手にエラーがある:

できない質量アサイン保護属性:course

ここに私のcourse.rb

class Course < ActiveRecord::Base 
belongs_to :semester 
has_many :notes, :dependent => :destroy 

attr_accessible :course_name, :course_number, :instructor, :instructor_email, :class_meets, 
       :class_starts, :semester_id 
end 

note.rb

class Note < ActiveRecord::Base 
belongs_to :course 
attr_accessor :course_name, :course_id 
attr_accessible :title, :date, :body, :extra, :course_name, :course_id 
end 
です

notes/_form.html.erb(ユーザーがコースを選択してノートを作成することができます)

<%= f.select("course", Course.find(:all).collect {|c| [c.course_name, c.id]})%> 

は、このエラーを解決するためにとにかくはありますか?

+0

がhttp://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.htmlを見てください –

+1

エラーは 'あなたが不足している、かなり自明です:あなた' attr_accessibleからcourse' '。 – meagar

答えて

3

あなたは、レールは、あなたが明示的にアクセスしたいパラメータを渡す必要が4以下であるレールのバージョンを使用しているので、あなたのNote.rb

+0

私は* Course()を期待して、String()* – coletrain

+0

を取得しました。 (コード行とコードのコピー/貼り付け) – Jamsi

+0

notes_controllerでエラーが発生する '@semester = Semester.new(params [:semester])' – coletrain

0

内部

attr_accessible :course

を追加する必要があります。これはセキュリティ上の理由によるものです。しかし、レール4をデフォルトで使用すると、レールがこれを処理します。その強力なパラメータと呼ばれる。

私のコントローラーとビューがこの属性にアクセスできるようにすることをモデルに伝えておきます。

attr_accessible :course 
関連する問題