2011-11-13 33 views
0

導軌是否提供了忽略傳入以創建的額外鍵的方法。假設用戶有兩個屬性,first_name和last_name。當我做忽略傳入的散列中的額外鍵以創建

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

該行給了我一個UknonwnAttributeError。那麼,這是有道理的,它會發生,因爲年齡不是其中的一個屬性。

但是有沒有辦法忽略不是用戶屬性之一的鍵值對呢?

回答

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