2012-04-22 105 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 – 2012-04-22 02:30:55

+1

的錯誤是不言自明,你錯過':從你的'attr_accessible course' '。 – meagar 2012-04-22 02:36:13

回答

3

你需要添加

attr_accessible :course

Note.rb

+0

現在,我得到*課程()的預期,得到的字符串()* – coletrain 2012-04-22 02:36:11

+0

哪裏關於你得到那個錯誤? (代碼行和複製/粘貼代碼) – Jamsi 2012-04-22 03:32:27

+0

我在notes_controller'@semester = Semester.new(params [:semester])中得到錯誤' – coletrain 2012-04-22 03:38:07

0

內由於您使用的軌道版本小於軌道4,你必須明確地傳遞您要訪問的參數。這是出於安全原因。但是,如果您默認使用rails 4,rails會爲您處理。它被稱爲強參數。

所以你必須告訴你的模型,讓我的控制器和視圖訪問這個屬性。

attr_accessible :course 
相關問題