【发布时间】:2017-07-05 19:52:35
【问题描述】:
在我的应用程序中,我有 Post 和 Slide 模型。 post has many slides & slide belongs_to post.
所有我的幻灯片每张都有一张图片(我使用carrierwave gem 进行上传),但目前我的一些帖子没有图片。
我正在尝试抓取每个帖子的第一张幻灯片,并在seed 的帮助下将其图片上传到帖子。
这是我在seeds.rb中尝试过的:
posts = Post.all.where(image: nil)
posts.each do |post|
slide = Slide.where(post_id: post).order('created_at DESC').first
post.update(remote_image_url: slide.image_url(:thumb_huge))
end
与
posts = Post.all.where(image: nil)
posts.each do |post|
slide = Slide.where(post_id: post).order('created_at DESC').first
post.update(remote_image_url: "http://mywebsite.com/uploads/slide/image/#{slide}/#{slide.image}")
end
当我运行它时,我得到:NoMethodError: undefined method image' for nil:NilClass
为什么image 会得到NoMethodError,我该如何解决?
【问题讨论】:
-
你需要显示代码,但我猜由于post没有图像,你需要先创建关联的模型实例。
-
将
posts = Post.all.where(image: nil)更改为posts = Post.where(image: nil)
标签: ruby ruby-on-rails-4 seed seeding