私のアプリケーションでは、ユーザーが投稿したレビューがあります。各レビューには多くの写真があります。私が必要とするのは、ユーザーに属するレビューをループし、各レビューに最初の写真を表示することです。IDに基づいて最初のイメージを選択し、(表示)ビューで表示するにはどうすればよいですか?
私はあなたの助けに感謝:)
これはコンソールで動作し、私は正しい写真を返すことができています。レビュー1では3枚の写真があり、最初の写真が正しく返されました。
Photo.where(:review_id => 1).pluck(:file_name).first
これをusers/show.html.erbファイルに表示しようとしていますが、動作しません。
<% @user.reviews.each do |review| %>
<%= image_tag review.firstphoto.url %>
<% end %>
Iはまた、ここ
def firstphoto
@photo = Photo.where(:review_id => @review_id).pluck(:file_name).first
end
reviews_controller.rbにおける最初の写真を得るための方法を定義する試み関連
class Review < ActiveRecord::Base
belongs_to :brand
belongs_to :user
has_many :photos
class Photo < ActiveRecord::Base
belongs_to :review
class User < ActiveRecord::Base
has_many :reviews
は写真をS3に格納され、このスキーマを使用されていますデータベースに格納する。
説明すると、写真はこのコードで正しく/ show.html.erbに正しく表示されます。
<% @review.photos.each do |photo| %>
<%= image_tag photo.file_name.url %>
<% end %>
私は「画像」を持っていないので、photos.first.image.urlは使用できません。 私はphotos.first.file_name.urlを試しましたが、未定義のメソッドを返します – Joshua
画像を保存したフィールドを教えてください。私があなたを助けることができるように。イメージフィールドを見つけるのに問題がある場合。画像を保存しているコードを教えてください。私は自分で見つけます。 –
イメージを正しく表示したいですか?それとも名前を表示したいだけですか? –