表:Raw_Data 字段:id 名称
表:Actual_Data 字段:id raw_data_id 名称
一个用户可以手动将数据添加到Actual_Data(在这种情况下,它的raw_data_id为NULL),或者他们可以选择一个Raw_Data插入到Actual_Data中(在这种情况下,它设置了raw_data_id)。
在这种情况下,以下关系是否正确?
对于Raw_Data: -none -
对于Actual_Data: has_one:raw_data
答案 0 :(得分:1)
你是对的,关系应该和你说的一样,
class ActualDate < ActiveRecord::Base
has_one :raw_data
end
class RawData < ActiveRecord::Base
belong_to :actual_data
end
根据rails约定,外键应该属于具有belongs_to关联的表,所以这里的actual_data_id应该在raw_datas表中。
编辑: 我们在actual_datas表中不需要raw_data_id。
答案 1 :(得分:0)
我想更好的选择是belongs_to。
Raw_Data has many or has one Actual_Data
Actual_Data belongs to Raw Data.
您必须记住在执行任何操作之前检查raw_data是否为nil。
manually_created = ActualData.create(:name => "Something");
builded = @RawData.build_actual_data(:name => "Something else");
第一个将列设置为null,第二个exaple将raw_data_id设置为@ RawData.id值。