3

在控制器中,如何在 params[] 末尾添加变量?

如果我尝试这个,我会得到一个错误:params[:group_] + variable

应该怎么做?


根据请求编辑

好的,我有一个表单,可以设置名称如下的单选按钮组:

group_01DRN0

显然我在表单中有不同的组(group_01AAI0、group_01AUI0 等),并且根据组内选择的单选按钮设置值:

单选按钮“group_01DRN0”的值可以是“21”或“22”或“23”,单选按钮“group_01AAI0”的值可以是“21”或“22”或“23”等。

在数据库中,我有每个代码(01DRN0、01AAI0、01AUI0 等),所以我想从数据库中选择它们并迭代参数值,这样我就可以获得单选按钮组值,我试过这个没有运气:

@codes=Code.get_codes
for c in @codes
  @all=params[:group_] + c.name
end

谢谢。

4

2 回答 2

4
p = params
p[:new_param_name] = new_param_value

它对我有用(rails 3.2)。注意:使用p而不是改变params避免改变原始参数。

于 2012-08-29T14:49:55.790 回答
3

params 看起来像一个哈希,但实际上不是。因此,如果您在处理控制器中的传入数据时需要“增加”参数,请发明一个包含参数或其成员的新数据结构。

添加:

也许你正在寻找

@codes=Code.get_codes
@all = []    
for c in @codes
  @all << params["group_#{c.name}"]
end
于 2010-05-14T18:01:15.943 回答