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]})%>

有没有办法解决这个错误?

4

2 回答 2

3

你需要添加

attr_accessible :course

在你的里面Note.rb

于 2012-04-22T02:31:15.677 回答
0

由于您使用的是小于 rails 4 的 rails 版本,因此您必须明确传递要访问的参数。这是出于安全原因。但是,如果您默认使用 rails 4,rails 会为您处理这个问题。它被称为强参数。

所以你必须告诉你的模型让我的控制器和视图访问这个属性。

  attr_accessible :course
于 2014-12-13T11:33:32.647 回答