2013-05-11 6 views
2

Я прочитал несколько статей SO по этой проблеме, но ни один из них, похоже, не работает. Я создаю начальных данных для одного из моих таблиц и всякий раз, когда я запускаю грабли БД: семя дает мне ошибку:Невозможно назначить защищенные атрибуты

Can't mass-assign protected attributes: severity 

Мои две модели выглядят как

class Status < ActiveRecord::Base 
    belongs_to :severity 
    attr_accessible :description, :image, :name, :slug, :severity_id 
end 

и

class Severity < ActiveRecord::Base 
    attr_accessible :name, :val, :severity_id 
end 

данные пытаюсь семян с

является
statuses = Status.create(
    [ 
    { 
     "name"=> 'Normal', 
     "slug"=> 'normal', 
     "description"=> 'The service is up or was up during this entire period', 
     "severity"=> 1, 
     "image"=> 'tick-circle' 
    } 
    ] 
) 

Я пытаюсь понять, почему это происходит. Любые предложения, пожалуйста?

Заранее спасибо

ответ

5

Вам нужно добавить: строгость к модели тяжести на attr_accesible линии. Rails пытается присвоить атрибут этим именем, которое, как я полагаю, имеется в вашей базе данных.

+1

Спасибо, полностью посмотрим, где я сейчас ошибся. – xyzjace

2
attr_accessible :severity 

Раздел 6: Массовое присвоение http://guides.rubyonrails.org/security.html

+0

Большое спасибо! Отличная статья. На самом деле я не был уверен, какое массовое задание для меня было сделано. – xyzjace

1

семя твое говорит severity, но ваш аксессор говорит severity_id. Итак, кто это?

+0

Не могу поверить, что раньше этого не видел. Это всегда мелочи. Благодаря! – xyzjace

Смежные вопросы