有没有人知道在使用符号更新模型时是否/如何引用ActiveRecord模型的属性?我有下面的代码,它会更新我的SocialMediaPost
模型,其中call[:model_attribute]
是一个等于:facebook_like_count
的符号。
我想做这样的事情:
SocialMediaPost.find(id).update_columns(call[:model_attribute]: resp.size)
这在功能上等同于:
SocialMediaPost.find(id).update_columns(facebook_like_count: resp.size)
注意:我需要使用update_columns
来完成此特定任务,以绕过我的所有before_save
,after_save
和after_commit
回调。
答案 0 :(得分:2)
请注意
{ name: value }
是可以用于键是符号的地图的特殊快捷符号。它等同于以下符号
{ :name => value }
如果你使用的不是符号而是必须使用“哈希火箭”符号,例如
"name" => value
所以在你的情况下你可以使用
SocialMediaPost.find(id).update_columns(call[:model_attribute] => resp.size)
答案 1 :(得分:1)
请试试这个:
SocialMediaPost.find(id).update_columns(call[:model_attribute].to_sym => resp.size)
答案 2 :(得分:1)
您可以使用#to_sym
:
call[:model_attribute].to_sym