种子文件:语法错误,意外的tSTRING_BEG,期待keyword_do或' {'或者'('

时间:2015-09-01 09:34:56

标签: ruby ruby-on-rails-4

我使用脚本生成一些种子内容,最后得到这样的内容:

Article.create!(
  brand:"adidas",
  price:90.00,
  remote_image_url:"https:http://media-cache.placedestendances.com/image/37/2/867372.38.jpg",
  redirection:"http://adidas.placedestendances.com/mode-femme/baskets-basses-stan-smith-blanc/fiche-produit,1718648,1718649",
  tags:"c")

当我运行db:seed时,我收到了brand:"adidas"行的错误:

 syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('

非常奇怪的是,当我手动重新打造品牌时,它的工作正常......

我有大量的数据库数据,因此我无法手动为每个数据库执行此操作。我对其他一些文章也随机得到同样的错误。

有什么想法吗?

seed = File.open('../seed.rb', 'w');
ARGV.each do |f|
    File.open(f, "r") do |f1|
      while line = f1.gets
        tab = line.split("\",\"");
        tab[1].tr!(' €', '').tr!(',','.').tr!('"', '')
        seed.write(
    "Article.create!(
    brand:#{tab[0][0..-1].downcase!}\",
    price:#{tab[1][0..-2]},
    remote_image_url:\"https:#{tab[2]}\",
    redirection:\"#{tab[3][0..-2]},
    tags:\"#{f[5..-5]}\")
    ")
      end
    end
end

作为我的条目:

  "MANGO","19,99 €","http://media-cache.placedestendances.com/image/97/0/831970.38.jpg","http://mango.placedestendances.com/mode-femme/collier-en-chaines-fines--dore/fiche-produit,1755700,1755701"

在我得到之后:

Article.create!(
    brand:"mango",
    price:19.99,
    remote_image_url:"https:http://media-cache.placedestendances.com/image/97/0/831970.38.jpg",
    redirection:"http://mango.placedestendances.com/mode-femme/collier-en-chaines-fines--dore/fiche-produit,1755700,1755701",
    tags:"a")

编辑:修复了隐藏的字符(cat -e => Article.create!(品牌:M-oM-; M-?"芒果",$ )

1 个答案:

答案 0 :(得分:1)

尝试将参数作为显式哈希传递:

Article.create!({
  brand:"adidas",
  price:90.00,
  remote_image_url:"https:http://media-cache.placedestendances.com/image/37/2/867372.38.jpg",
  redirection:"http://adidas.placedestendances.com/mode-femme/baskets-basses-stan-smith-blanc/fiche-produit,1718648,1718649",
  tags:"c"
})