rails是否提供了一种忽略传入以创建的额外键的方法。假设User有两个属性,first_name和last_name。当我做的时候
User.create({ :first_name => "first", :last_name => "last", :age => 10})
该行给了我一个UknonwnAttributeError。嗯,这是有道理的,它发生的原因是年龄不是其中一个属性。
但有没有办法忽略不是User?
的属性之一的键值对答案 0 :(得分:0)
我猜你可以通过将虚拟属性声明为'age'
来实现示例:
class User < ActiveRecord::Base
attr_accessor :age
end
答案 1 :(得分:0)
无论是相同的说法,还是
hash.keep_if { |k,v| User.attribute_names.include?(k.to_s) }
最终你可以覆盖用户模型的创建方法以拒绝不正常的属性,但我认为这不合适。