railsでメモ機能を実装していて、(ログインユーザー)投稿者のみ表示できるようにしたいです。
現在メモ機能を作成していて、ログインユーザー(投稿者)ごとでメモした内容を表示したいのですが、ログインユーザー全員がメモ内容を見れる状態です。ログインユーザーAさんがBさんのメモ内容を見れてしまう状態です。つまり、一覧表示画面で自分だけ見れる状態にしたいです。
## 該当のソースコード
ruby
1class MemosController < ApplicationController 2 3 def index 4 if params[:industry_id] 5 @industrys = Industry.find(params[:industry_id]) 6 @memos = @industrys.post.order(industry_id: :desc).all 7 @memos = User.includes(:user).where(user_id: current_user.id) 8 else 9 @memos = Memo.order(industry_id: :desc).all 10 11 end 12 end 13 14 def new 15 @memo = Memo.new 16 end 17 18 def create 19 @memo = Memo.new(memo_params) 20 if @memo.save 21 redirect_to memos_path 22 else 23 render :new 24 end 25 end 26 27 private 28 29 def memo_params 30 params.require(:memo).permit(:title, :selection_status, :body, :industry_id).merge(user_id: current_user.id) 31 end 32end 33 34app/view/memos/index.html.erb 35 36<body class="back"> 37<div class='memo-info'> 38<div class="industry-category">金融・銀行</div> 39<ul class='memo-lists'> 40<% if user_signed_in? && current_user.id %> 41<% @memos.each do |memo| %> 42 <li class='list'> 43 <% if memo.industry_id == 1 %> 44<div class="card border-info mb-3" style="max-width: 18rem;"> 45 <div class="card-header"><%= memo.title %></div> 46 <div class="card-body text-info"> 47 <h5 class="card-title"><%= memo.selection_status %></h5> 48 <p class="card-text"><%= memo.body %></p> 49 <% else %> 50 <% nil %> 51 </div> 52 <% end %> 53<% end %> 54</li> 55</ul> 56<% end %> 57</div> 58 59<div class='memo-info'> 60<div class="industry-category">不動産・建築</div> 61<ul class='memo-lists'> 62<% @memos.each do |memo| %> 63 <li class='list'> 64 <% if memo.industry_id == 2 %> 65<div class="card border-dark mb-3" style="max-width: 18rem;"> 66 <div class="card-header"><%= memo.title %></div> 67 <div class="card-body text-dark"> 68 <h5 class="card-title"><%= memo.selection_status %></h5> 69 <p class="card-text"><%= memo.body %></p> 70 <% else %> 71 <% nil %> 72 </div> 73 <% end %> 74<% end %> 75</li> 76</ul> 77</div> 78 79</body>
試したこと
view/memos/index.html.erbに<% if user_signed_in? && current_user.id == @memo.user_id %>
<% end %>を使うとundefined method `user_idのエラーが出ますが、そもそもmemos_controllerでDBからオブジェクトを取り出すメソッドを使っていないので、エラーが出ることは把握済みです。
補足情報(FW/ツールのバージョンなど)
上記のDBからオブジェクトを取り出すメソッドをmemos_controllerまたはuser_controllerどちらに記述した方がよろしいですか?
宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/11 05:10