0

私の現在のプロジェクトでは、1 つのテーブルの列にデータを取得し、それらを 2 番目のテーブルに配置する必要があります。最初のテーブル データは、次のようにハッシュとして保存されています。

--- 
- werweqr
- test
- B1
- B2
- B3
- xvxczv

移行ファイルに次のコードを記述して、最初のテーブルのデータを 2 番目のテーブルに追加します。しかし、データは最初から2番目に送信されていません。

 @scenario_response = ScenarioResponse.where("selected_barriers != ?", "");
    @scenario_response.each do |p|
      p.selected_barriers.each do |barrier|
        Settings.test = barrier
        # SelectedBarriers.create(:scenario_response_id => p.id, :barrier => barrier)

      end
    end

私のコードに何か問題がある場合は、誰でも教えてください。

もしそうなら、それを修正する方法は?

どうもありがとう

4

2 に答える 2

0

また、update_attributesを実行していません。Settings.update_attributes(params[:test])後にやってみてくださいSettings.test = barrier

于 2012-09-21T15:14:13.493 に答える
0

p.selected_barriers で「each」を呼び出す必要はないと思います。each を削除して、次のようにしてみてください Settings.test=p.selected_barriers。私も RoR は初めてです..私によると、scenario_response は、selected_barriers が "" であるすべてのインスタンスを返すコレクションです。コレクションに対して each を実行しているため、それぞれに対して selected_barriers アイテムが 1 つだけになります。これを試して、間違っている場合はお知らせください。

于 2012-09-21T15:07:42.713 に答える