在我的 rails 应用程序中,我遇到了需要在参数名称中添加字符串的情况,
即,我有一个 params 数组params[:attended]
,但我需要将其作为params[:attended_61]
并且_61
必须附加。61 是活动记录行对象的 ID。我在@sys.id
. 然后请告诉我如何转换params[:attended]
为params[:attended_61]
. 谢谢你。
在我的 rails 应用程序中,我遇到了需要在参数名称中添加字符串的情况,
即,我有一个 params 数组params[:attended]
,但我需要将其作为params[:attended_61]
并且_61
必须附加。61 是活动记录行对象的 ID。我在@sys.id
. 然后请告诉我如何转换params[:attended]
为params[:attended_61]
. 谢谢你。
Billy Chan 是对的,您尝试做的事情听起来很奇怪,您可能应该重新考虑您的整个方法。
但是如果你必须做这样一件奇怪的事情,你可以这样做:
params[:"attended_#{@sys.id}"] = params.delete(:attended)
或者,因为params
将是 a HashWithIndifferentAccess
,您可以跳过符号化:
params["attended_#{@sys.id}"] = params.delete(:attended)
# or even
params["attended_#{@sys.id}"] = params.delete('attended')
params
只是一个返回哈希的方法,您可以根据需要更改该哈希。
您可以按照下面给出的方式进行操作。
params["attended_#{@sys.id}"]
完美的工作!
您也可以将:添加到参数名称中,使其类似于自然的params[:var]名称,这样也可以很好地工作
params[:"attended_#{@sys.id}"]