Ruby on rails 第一个\u或\u create方法是否适用于Rails中的关联?
我正在从CSV文件上载记录。但该文件也有关联数据的记录我需要确保不保存重复数据,因为如果rake任务运行多次。 那么,Ruby on rails 第一个\u或\u create方法是否适用于Rails中的关联?,ruby-on-rails,csv,Ruby On Rails,Csv,我正在从CSV文件上载记录。但该文件也有关联数据的记录我需要确保不保存重复数据,因为如果rake任务运行多次。 那么,first\u或\u create是否也与关联一起工作 代码如下: row = # FROM CSV Looping service_place = ServicePlace.first_or_create( name: row['NAME'], service_type: service_type, address_attri
first\u或\u create
是否也与关联一起工作
代码如下:
row = # FROM CSV Looping
service_place = ServicePlace.first_or_create(
name: row['NAME'],
service_type: service_type,
address_attributes:
{
line_1: row['LOCATION'],
city: row['CITY'],
province: row['PROVINCE'],
postal_code: row['POSTAL_CODE'],
latitude: coords[0],
longitude: coords[1]
}
)
我需要确保不保存重复的数据
为什么不在您的关联上添加ActiveModel验证,以确保该值是唯一的?通过这种方式,您将确保所保存的数据是唯一的。实际需求并没有这么多。因为管理员有权创建重复的数据,如果他想要的话。例如,如果一个rake任务运行了20次,你就不想创建它。那么,你为什么不直接在数据库中插入样本数据,然后尝试先调用
或者\u create
,然后得到一个即时的答案呢?显然我做到了。但是我在等待一些像你这样了不起的人提出一些很酷的建议/备选方案:)