ActiveRecord引用符号的模型属性

时间:2015-12-23 18:31:09

标签: ruby-on-rails activerecord

有没有人知道在使用符号更新模型时是否/如何引用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_saveafter_saveafter_commit回调。

3 个答案:

答案 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