質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

3956閲覧

外部キーを通して、他のテーブルから値を取得したいです。

mn132f9

総合スコア6

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/04/26 14:20

実現したいこと

現在railsを勉強中です。
railsにて、外部キーで繋がっているテーブルのレコードを取得し、ビューに表示させたく思います。

商品の名前、価格等と、商品の画像は別々のテーブルに保存しています。
(itemsテーブルとimagesテーブル。関係は1対多になります)

直近に登録された3つの商品名の名前、価格、画像をviewに表示させたく考えています。

items テーブル

idnameprice
1sample1100
2sample2200
3sample3300

images テーブル

idurlitem_id
1url11
2url1-21
3url22
4url33

モデル

html

1class Item < ApplicationRecord 2 has_many :images 3end 4 5class Image < ApplicationRecord 6 belongs_to :item 7end

コントローラー

html

1class ItemsController < ApplicationController 2 def index 3 @item = Item.limit(3).order(id: "DESC") 4 end 5end

上記のようにモデル、コントローラーを設定し、ビューを下記のように設定したところ、どうしても表示できなく、ビューをどのように記述すれば良いか、アドバイスをいただきたいです。

html

1- @item.images.each do |item| 2 %ul 3 %li 4 = item.name 5 = item.price 6 = item.image

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

has_many :imagesと複数個あるので、item.imageではアクセスできません。item.imagesという複数形が有効です。

投稿2020/04/26 14:23

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mn132f9

2020/04/29 13:06

ご回答ありがとうございます。 登録日時の新しい商品画像の名前、価格を表示させたいなと考えていたんですが、頂いたヒントをもとに下記のようにしたら取得ができました。 混乱していたんですが、ご回答をもとにアクセスできないという問題が整理できました。ありがとうございます。 <Controller> def index @images = Image.limit(3).order(id: "DESC") end <View> - @images.each do |image| %ul. %li =image_tag image.url.to_s, size: "200x200" %li = image.item.name %li = image.item.price
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問