導軌是否提供了忽略傳入以創建的額外鍵的方法。假設用戶有兩個屬性,first_name和last_name。當我做忽略傳入的散列中的額外鍵以創建
User.create({ :first_name => "first", :last_name => "last", :age => 10})
該行給了我一個UknonwnAttributeError。那麼,這是有道理的,它會發生,因爲年齡不是其中的一個屬性。
但是有沒有辦法忽略不是用戶屬性之一的鍵值對呢?
導軌是否提供了忽略傳入以創建的額外鍵的方法。假設用戶有兩個屬性,first_name和last_name。當我做忽略傳入的散列中的額外鍵以創建
User.create({ :first_name => "first", :last_name => "last", :age => 10})
該行給了我一個UknonwnAttributeError。那麼,這是有道理的,它會發生,因爲年齡不是其中的一個屬性。
但是有沒有辦法忽略不是用戶屬性之一的鍵值對呢?
無論什麼sameera207說還是
hash.keep_if { |k,v| User.attribute_names.include?(k.to_s) }
最終你可以重寫你的用戶模型的創建方法可以拒絕無意義的屬性,但我認爲這不合適。
我想,你可以通過聲明一個虛擬屬性爲 '時代' 這樣做
例子:
class User < ActiveRecord::Base
attr_accessor :age
end
年齡不存在,這就是爲什麼我認爲它應該被忽略,當試圖創建 – denniss
我看..我認爲軌道會有這個。 – denniss