3

コントローラーで、params[] の最後に変数を追加するにはどうすればよいですか?

これを試してみると、エラーが発生します: params[:group_] + variable

それはどのように行われるべきですか?


リクエストごとに編集

OK、次のような名前のラジオ ボタンのグループを設定するフォームがあります。

group_01DRN0

明らかに、フォームにはさまざまなグループ (group_01AAI0、group_01AUI0 など) があり、グループ内で選択されたラジオ ボタンに従って値が設定されます。

ラジオ ボタン「group_01DRN0」の値は「21」または「22」または「23」、ラジオ ボタン「group_01AAI0」の値は「21」または「22」または「23」などになります。

DB にはすべてのコード (01DRN0、01AAI0、01AUI0 など) があるので、DB からそれらを選択し、params 値を反復処理して、ラジオ ボタン グループの値を取得できるようにします。

@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

それは私にとってはうまくいきます(レール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 に答える