我们有一个Style
具有动态属性的模型,可以通过用属性键填充一个字段并用值填充下一个字段来保存它。
典型的 params 哈希如下所示:
{"utf8"=>"✓", "style"=>{"collection_id"=>"48", "program_id"=>"989", "number"=>"454632", "name"=>"t67f", "category_id"=>"19", "field_KEY"=>"VALUE"}, "commit"=>"save", "id"=>"4521"}
当点击它时,它会按预期工作,并且这对使用 getter( ) 和 setter( ) 方法"field_KEY" => "VALUE"
创建一个新的动态属性。field_KEY
field_KEY=
问题是:如果该过程是用黄瓜模拟的,那么在设置属性之前,有些东西会为哈希中的所有键调用 getter,包括field_KEY
.
普通属性将返回nil
新记录,但由于field_KEY
尚未创建 getter,这会导致
`UndefinedMethodError: undefined method 'field_KEY'`.
现在我的问题是:你宁愿追踪field_KEY
getter 的调用者并弄乱黄瓜,还是应该尝试模拟一个假方法,例如:
def check_method(method_name)
if method_name =~ /^field_/
nil
else
... # let the Error be raised
end
更好的想法或解决方案非常受欢迎
谢谢