Railsでは、モデルのフォームフィールドをどのように更新しますか?
-
05-07-2019 - |
質問
指定するすべてのフィールドを=" frog"に設定したいふりをしましょう
モデルでは、次を使用して手動で設定できます。
self.field1 = 'frog'
self.desc_field = 'frog'
self.fieldx = 'frog'
etc....
しかし、フィールド名を配列に入れることでどうすればいいですか?
試したとき
fields_array=['field1','desc_field','fieldx']
fields_array.each { |field|
self.field = 'frog'
}
機能しません。提案はありますか?
解決
上記のJohn Topleyの答えは基本的に正しいですが、値を割り当てたいので、次のようなことをしたいです:
fields_array=['field1','desc_field','fieldx']
fields_array.each { |field|
self.send("#{field}=", 'frog')
}
追加された等号に注意してください。これで、 self.field1( 'frog')
ではなく、 self.field1 = 'frog'
を実行しています。
他のヒント
send
メソッドを使用してみてください:
fields_array=['field1','desc_field','fieldx']
fields_array.each { |field|
self.send("#{field}", 'frog')
}
所属していません StackOverflow