(Ruby on Rails)マイページで他モデルで保存したの情報を表示したい
解決したいこと
現在Ruby on Railsでポートフォリオ作成中の初学者です。
マイページにおいて、他モデルで保存した情報を呼び出して上位2件といった形で表示しようと考えているのですが、エラーが出てしまい、そもそもうまく表示がされませんでした。
原因としては
①users_controller.rbの@schedulesが複数形になっていることで表示がなされない?
②複数の情報をviewファイルに呼び出しているのでeachメソッドを使うべき?
など色々試したり仮説を立てましたが、うまくまとまらず、迷走してしましましたので、原因がわかる方がいらっしゃいましたらご教授いただけますと幸いです。
なお、モデルでのアソシエーションは完了しています。
発生している問題・エラー
該当するソースコード
app>controllers>users_controller.rb
class UsersController < ApplicationController
def show
@nickname = current_user.nickname
@email = current_user.email
@sex_id = current_user.sex.name
@schedules = current_user.schedules
end
end
おそらく "@schedules = current_user.schedules"をなんとかしないといけないと感じています。
<div class="show-edit-content">
<div class="content-item">よく飲むお酒</div>
<div class="item-result">
<%= @schedules.amounts %>
</div>
</div>
自分で試したこと
ターミナルで、そもそもparamsが渡っていているかを確認しました。
一応紐づいた情報は渡ってきているようです。
ターミナル
From: /Users/matsuyamayuuki/projects/alcorhythm/app/controllers/users_controller.rb:4 UsersController#show:
3: def show
=> 4: binding.pry
5: @nickname = current_user.nickname
6: @email = current_user.email
7: @sex_id = current_user.sex.name
8: @schedules = current_user.schedules
9: end
[1] pry(#<UsersController>)> @schedules = current_user.schedules
Schedule Load (0.7ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`user_id` = 9
↳ app/controllers/users_controller.rb:4:in `show'
=> [#<Schedule:0x00007fa6d0a88e68
id: 1,
alcohol_id: 5,
percentage: 4,
amount: 600,
start_time: Fri, 22 Jul 2022,
user_id: 9,
created_at: Fri, 22 Jul 2022 15:00:43 JST +09:00,
updated_at: Fri, 22 Jul 2022 15:00:43 JST +09:00>,
#<Schedule:0x00007fa6d0a88828
id: 2,
alcohol_id: 3,
percentage: 5,
amount: 600,
start_time: Wed, 20 Jul 2022,
user_id: 9,
created_at: Fri, 22 Jul 2022 15:28:08 JST +09:00,
updated_at: Fri, 22 Jul 2022 15:28:08 JST +09:00>]
0