0

在我当前的项目中,我必须在一个表的列中获取一些数据并将它们放到第二个表中。第一个表数据已保存为哈希,如下所示:

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

我在迁移文件中编写了以下代码,以将第一个表中的数据添加到第二个表中。但是数据不是从第一个发送到第二个。

 @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

我认为您不需要在 p.selected_barriers 上调用“each”。尝试删除 each 并执行以下操作: Settings.test=p.selected_barriers。我也是 RoR 的新手。据我说,scenario_response 是一个集合,它返回所有将 selected_barriers 设为“”的实例。由于您正在对集合进行 each,因此您将只有一个 selected_barriers 项目用于它们中的每一个。请试试这个,如果我错了,请告诉我。

于 2012-09-21T15:07:42.713 回答
0

你也没有做update_attributes。尝试做Settings.update_attributes(params[:test])之后Settings.test = barrier

于 2012-09-21T15:14:13.493 回答