Railsでは、モデルのフォームフィールドをどのように更新しますか?

StackOverflow https://stackoverflow.com/questions/1000482

  •  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')
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top