在RoR ActiveRecord类中,使用self[:attribute]=value
而不是write_attribute( :attribute => value )
的优缺点是什么。这只是风格问题吗?或者是否有更深层次的理由偏爱另一个?
答案 0 :(得分:1)
如果查看github上的源代码,可以看到内部使用私有方法write_attribute_with_type_cast
:
这比你自己调用self[:attribute]=value
更有优势,如果你设置id
,或者你认为应该id
,那么该方法将处理找到正确的属性模型主键的名称。
最后,通过write_from_user
,rails实际上为您调用self[:attribute] = value
,尽管名称不同:
如果您的模型没有使用标准:id
列作为主键,那么除:custom_primary_key
到id
的自动更正外,使用{{1}没有任何功能优势超过write_attribute
。