私のアプリケーションで私はPost
&モデルを持っています。 post has many slides
& slide belongs_to post
。私のスライドのRuby on Rails - シード未定義メソッドエラー
すべては、一つの画像があり、各(Iがアップロードする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
を持っているようですね
コードを表示する必要がありますが、ポストに画像がないので、まず関連するモデルインスタンスを作成する必要があります。 – lcguida
'posts = Post.all.where(画像:nil)'を 'posts = post(画像:なし)'に変更します。 –