Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 这样的检查将在创建的对象上正确进行?_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 这样的检查将在创建的对象上正确进行?

Ruby on rails 这样的检查将在创建的对象上正确进行?,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,这样的检查将在创建的对象上正确进行 我觉得这不是真的正确 unless DailyTip.find_by_slug(tip[:slug]).persisted? daily_tip = DailyTip.create!( tip: tip[:tip], ... ) day = ProgramDay.find_by_day(tip[:program_day]) day.update_attributes(daily_tip_id: da

这样的检查将在创建的对象上正确进行

我觉得这不是真的正确

  unless DailyTip.find_by_slug(tip[:slug]).persisted?
    daily_tip = DailyTip.create!(
      tip: tip[:tip],
      ...
    )

    day = ProgramDay.find_by_day(tip[:program_day])
    day.update_attributes(daily_tip_id: daily_tip.id)
  else
    puts 'Video tip already created.'
  end
这条线

DailyTip.find_by_slug(tip[:slug]).persisted?
没有多大意义,因为find_by_slug将查询数据库,如果找到某个内容,它将检查该内容是否已保存到数据库中。如果未找到任何内容,您的代码将中断:

 undefined method `persisted?' for nil:NilClass
我想你的意思是这样写的:

if DailyTip.find_by(slug: tip[:slug])
  puts "Video tip already created"
else
  daily_tip = DailyTip.create! tip: tip[:tip]
  day = ProgramDay.find_by_day(tip[:program_day])
  day.update_attributes(daily_tip_id: daily_tip.id)
end
最后,很大程度上取决于你的应用程序逻辑。我希望这有点帮助