【问题标题】:Ruby on Rails - Adding variable to params[]Ruby on Rails - 将变量添加到参数 []
【发布时间】:2010-05-14 17:43:09
【问题描述】:

在控制器中,如何在 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

谢谢。

【问题讨论】:

  • 您的示例代码在每次循环迭代时都会覆盖@all...

标签: ruby-on-rails variables params


【解决方案1】:
p = params
p[:new_param_name] = new_param_value

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

【讨论】:

    【解决方案2】:

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

    添加:

    也许你正在寻找

    @codes=Code.get_codes
    @all = []    
    for c in @codes
      @all << params["group_#{c.name}"]
    end
    

    【讨论】:

    • 我不知道你可以在 params[] 中使用“group_#{c.name}”!但这成功了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多