8

次のコードがあります。

@profile.update_attributes(params[:xxxx_profile])

ここで、xxxx は男性または女性を表します。基本的に、フォーム送信は一連のfemale_profile[foo]またはのいずれかを渡し、male_profile[foo]それに応じて変更したいと考えています。xxxx の代わりに挿入できる文字列があると仮定すると、このシンボルを動的に作成するにはどうすればよいですか?

ありがとう。

4

3 に答える 3

12

次のようなものを試してください:

@profile.update_attributes(params["#{gender}_profile".to_sym])

または、Rails はパラメーターに HashWithIndifferentAcceess を使用するため、シンボルに変換せずに文字列を渡すことができるはずです: http://api.rubyonrails.org/classes/HashWithIndifferentAccess.html

@profile.update_attributes(params["#{gender}_profile"])
于 2009-12-08T03:13:24.347 に答える
3

理解した。誰かの役に立つかもしれないと思った。

@profile.update_attributes(params[(@sexstring + "_profile").to_sym])
于 2009-12-08T03:12:40.343 に答える
1

あなたもできる

@profile.update_attributes(params[:"#{gender}_profile"])
于 2009-12-08T03:17:54.763 に答える