2011-11-13 3 views
0

レールは、作成するために渡された余分なキーを無視する手段を提供しますか?想定ユーザーには、first_nameとlast_nameの2つの属性があります。私がするとき作成するために渡されたハッシュの余分なキーを無視する

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

その行は私にUknonwnAttributeErrorを与えます。まあ、それは理にかなっています、それは年齢が属性の一つではないということが起こることです。

しかし、Userの属性の1つではないキーと値のペアを無視する方法はありますか?

答えて

0

を最終的にあなたがあなたをオーバーライドすることができるものsameera207言ったり

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

どちらか不自然な属性を拒否するユーザー・モデルの作成メソッドですが、それは適切ではないと思います。

+0

私は見ています。私はレールがこれを持っていると思っていました。 – denniss

0

私は、あなたが

例 '年齢' と仮想属性を宣言することにより、これを行うことができると思います:

class User < ActiveRecord::Base 
    attr_accessor :age 
end 
+0

年齢は存在しません。だから私はそれを無視しようと思っています。 – denniss

関連する問題