Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 第一个\u或\u create方法是否适用于Rails中的关联?_Ruby On Rails_Csv - Fatal编程技术网

Ruby on rails 第一个\u或\u create方法是否适用于Rails中的关联?

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

我正在从CSV文件上载记录。但该文件也有关联数据的记录我需要确保不保存重复数据,因为如果rake任务运行多次。

那么,
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
,然后得到一个即时的答案呢?显然我做到了。但是我在等待一些像你这样了不起的人提出一些很酷的建议/备选方案:)