Я пытаюсь создать таблицу teacher
, в которой есть столбец с именем «teacher_type_id», то есть это внешний ключ, который подключен к таблице teacherType
, которая имеет три строки, а именно: 1 = > Репетитор, 2 => Лидер модуля и 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
и попытаться создать новый учитель, используя либо «1» или «Наставника» как TeacherType, однако, когда я отправить форму, я всегда получаю ту же ошибку, которая:
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
, но до сих пор не дало никаких результатов
Почему attr доступен в виде учителя? –
Играли с 'attr_accessible', как я читал на разных форумах, и на вопросы отвечали, что это решило это. Но это на самом деле не – omarArroum
Но атр учитель, а не учитель. –