Игнорирование дополнительных ключей в хэше, переданном для создания - PullRequest
0 голосов
/ 13 ноября 2011

Предоставляет ли rails способ игнорировать дополнительные ключи, которые передаются для создания.Предполагаемый пользователь имеет два атрибута, first_name и last_name.Когда я делаю

User.create({ :first_name => "first", :last_name => "last", :age => 10})

, эта строка дает мне UknonwnAttributeError.Ну, это имеет смысл, это происходит потому, что возраст не является одним из атрибутов.

Но есть ли способ просто игнорировать пару ключ-значение, которая не является одним из атрибутов для пользователя?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2011

Либо то, что сказал sameera207, либо

hash.keep_if { |k,v| User.attribute_names.include?(k.to_s) }

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

0 голосов
/ 13 ноября 2011

Я думаю, вы могли бы сделать это, объявив виртуальный атрибут как 'age'

Пример:

class User < ActiveRecord::Base
  attr_accessor :age
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...