如何在update_attributes中将变量用作属性

时间:2015-06-09 15:19:14

标签: ruby-on-rails-4

所以我有一个带有一组属性的对象,这些属性是布尔标志,用于标记是否已发布某些内容。有几种不同的格式可以发布到:published_to_web,published_to_email,published_to_pdf等。我没有使用单独的方法来重置每种格式,我想我只需要使用一种方法,并设置属性,并在相关时发送一个变量单击了按钮(web,email,pdf等)。例如,一个按钮调用方法和params [:format] ='web',所以我想将对象的'publish_to_web'属性设置为false:

@bulletin.update_attributes( "published_to_#{params[:format]}", false)

但我无法让它发挥作用。看起来它在RoR中应该很简单,但我似乎无法获得正确的juju。我试过了:

@bulletin.update_attributes( "published_to_#{params[:format]}".to_sym, false )
@bulletin.update_attributes( "published_to_#{params[:format]}", false )
@bulletin.update_attributes( "published_to_#{params[:format]}: false" )
@bulletin.update_attributes( ":published_to_#{params[:format]}" => false)

......秘诀是什么?

1 个答案:

答案 0 :(得分:3)

@bulletin.update_attributes( "published_to_#{params[:format]}" => false)