在params名称附加一个字符串

时间:2013-06-16 18:59:55

标签: ruby-on-rails variables append params

在我的rails应用程序中,我遇到了需要在params名称中添加字符串的情况,

即,我有一个params数组params[:attended],但我需要将其设为params[:attended_61]并且必须追加_61。 61是活动记录行对象的ID。我在@sys.id中有这个价值。那么请告诉我如何将params[:attended]转换为params[:attended_61]。谢谢。

3 个答案:

答案 0 :(得分:2)

Billy Chan是对的,你想要做的事听起来很奇怪,你应该重新思考你的整个方法。

但如果你必须做这么奇怪的事情,你可以这样做:

params[:"attended_#{@sys.id}"] = params.delete(:attended)

或者,由于params将是HashWithIndifferentAccess,您可以跳过符号:

params["attended_#{@sys.id}"] = params.delete(:attended)
# or even
params["attended_#{@sys.id}"] = params.delete('attended')

params只是一个返回哈希的方法,您可以根据需要更改哈希值。

答案 1 :(得分:1)

您可以按照以下说明执行此操作。

params["attended_#{@sys.id}"]

完美的工作!!

答案 2 :(得分:0)

你也可以将添加到params名称,就像自然的 params [:var] 名称一样,它也可以很好地工作

params[:"attended_#{@sys.id}"]