рельсы 3 создать наборы значений для выставления счета - PullRequest
0 голосов
/ 10 марта 2012

Так что после слияния мой проект RoR 3 больше не «правильно» создает.Атрибуты по умолчанию установлены правильно, но не те, которые я передаю:

1.9.3-p125 :020 > f=Ifilter.create(:name => "test2", :regex => "()" )
SQL (101.5ms)  INSERT INTO "ifilters" ("created_at", "name", "regex", "updated_at") VALUES    (?, ?, ?, ?)  [["created_at", Sat, 10 Mar 2012 03:36:24 UTC +00:00], ["name", nil], ["regex", nil], ["updated_at", Sat, 10 Mar 2012 03:36:24 UTC +00:00]]

=> #<Ifilter id: 2, name: nil, regex: nil, created_at: "2012-03-10 03:36:24", updated_at: "2012-03-10 03:36:24"> 

Однако сохранение все еще работает:

1.9.3-p125 :021 > f=Ifilter.new
 => #<Ifilter id: nil, name: nil, regex: nil, created_at: nil, updated_at: nil> 
1.9.3-p125 :022 > f.name = "test"
 => "test" 
1.9.3-p125 :023 > f.regex = "()"
 => "()" 
1.9.3-p125 :024 > f.save
  SQL (4.8ms)  INSERT INTO "ifilters" ("created_at", "name", "regex", "updated_at") VALUES (?, ?, ?, ?)  [["created_at", Sat, 10 Mar 2012 04:13:10 UTC +00:00], ["name", "test"], ["regex", "()"], ["updated_at", Sat, 10 Mar 2012 04:13:10 UTC +00:00]]
 => true 

Что происходит?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 марта 2012

Обычно это происходит, когда включен белый список атрибутов.Убедитесь, что вы задаете атрибуты, которые можно задать с помощью массового присвоения в вашей модели с помощью макроса attr_accessible:

class Ifilter
   attr_accessible :name, :regex
   ...
end
0 голосов
/ 10 марта 2012

Похоже, у вас есть attr_accessible на вашей модели. http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html#method-i-attr_accessible

Если вы используете его, атрибуты, которые явно не перечислены, не будут установлены через #new, #create и #update_attributes (и еще несколько).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...