rails - 导入CSV文件时没有'before_validation'回调

时间:2013-07-02 16:39:37

标签: ruby-on-rails csv callback

创建“产品”时,我使用'before_validation'回调,以便创建附加字段。例如,

before_validation(:on => :create) do
   self.product_name = product_title+"_"+product_type
end

这很好,除非我想通过CSV导入文件。 CSV文件已经具有'product_name',因此无需使用回调创建它。

我不想在导入CSV文件时使用'before_validation'回调。

在创建产品之前,有没有办法检查并查看CSV文件是否存在?像这样的东西

if csv.blank?
  before_validation(:on => :create) do
     self.product_name = product_title+" | "+product_type
  end
end

2 个答案:

答案 0 :(得分:0)

只需在原始before_validation

中使用此双重管道即可
self.product_name ||= product_title+"_"+product_type

如果它已经存在,它将自行返回。

答案 1 :(得分:0)

仅在未填充产品名称时执行

before_validation(:on => :create) do
  self.product_name ||= product_title+" | "+product_type
end