teacher
「teacher_type_id」という名前の列を持つテーブルを作成しようとしていteacherType
ます。つまり、1 => Tutor、2 => Module Leader、3 => Lecturer という 3 つの行を持つテーブルに接続されている外部キーです。 .
私のschema.rb
ファイルには次の情報が含まれています。
create_table "teacher_types", :force => true do |t|
t.string "title"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "teachers", :force => true do |t|
t.integer "teacherType_id"
t.string "firstName"
t.string "lastName"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "teachers", ["teacherType_id"], :name => "index_teachers_on_teacherType_id"
ファイルは次のteacher_typ.rb
ようになります。
class TeacherType < ActiveRecord::Base
has_many :teachers
attr_accessible :title, :teacher_type_id (Also tried :teacherType_id)
end
そして、私のteacher.rb
ファイルは次のようになります。
class Teacher < ActiveRecord::Base
has_one :teacherType
attr_accessible :firstName, :lastName
end
ただし、今、私に行きlocalhost:3000/teacher/new
、TeacherType として「1」または「Tutor」を使用して新しい教師を作成しようとすると、フォームを送信すると、常に同じエラーが発生します。
ActiveModel::MassAssignmentSecurity::Error in TeachersController#create
Can't mass-assign protected attributes: teacherType_id
Rails.root: /Users/omar/rails_projects/attendance
Application Trace | Framework Trace | Full Trace
app/controllers/teachers_controller.rb:43:in `new'
app/controllers/teachers_controller.rb:43:in `create'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"NEJf3bISJsidStVyfdRns0oZ7JzSZ8RqqZSAWgL9hz8=",
"teacher"=>{"teacherType_id"=>"Tutor",
"firstName"=>"Jack",
"lastName"=>"Sparrow"},
"commit"=>"Create Teacher"}`
なぜそれが考えられるのでしょうか?私は見ていたattr_accessible
が、それでも役に立たなかった