0

したがって、テキストフィールドがあり、ユーザーはカンマで区切られたカードID(たとえば、1、2、3)を入力できます。このユーザーがフォームを送信するときに、送信する各IDの新しいレコードを作成したいと思います。つまり、1対1、1対2、1対3です。

どうすればいいですか?

ありがとうございました

4

3 に答える 3

0

試す

ModelName.create(input_string.split(',').map{ |i| { :field => i.strip } })

splitコンマで入力を分割し、マップはモデルのテキストフィールドが{ :field => i }どこにあるかの配列を生成します。:field

于 2012-07-27T13:56:22.997 に答える
0

コントローラーのテキストフィールドからの入力値を解析する必要があります。例えば:

def update
   ids_input=params[:ids]
   ids_input.split(',').each { |id|
      Card.create(:some_id=>id,:other_column=>'some_value',:related_user=>current_user)
   }
end
于 2012-07-27T13:56:35.607 に答える
0

これを実現するには、特定のニーズに応じていくつかの方法があります。@rogal111が彼の答えで示唆しているように、コントローラーのすべてのエントリをループする1つの方法があります。

ユーザーとカードの間に 1 対多の関係がある場合は、おそらくそれが最善の方法ですが、ネストされたフォームを使用してそれを達成することをお勧めします。Ryan Bates は、そのスクリーンキャストについていくつかの優れたスクリーンキャストを作成しました。

于 2012-07-27T14:00:59.580 に答える