ガチガチの初心者です。
ログイン、投稿機能付きのサイトを作っています。
投稿内容はbookモデル
userの内容はUserモデルで管理しています。
投稿の詳細画面として
books show.html.erb
<h2> Book detail </h2> <tr> <th><%= attachment_image_tag @book.user, :profile_image, :fill, 60, 60, format: 'jpeg', class: "img-circle pull-left profile-img", fallback: "no_image.jpg" %></th> <th><%= @book.title %></th> <th><%= @book.body %></th> <% if @user.id == @current_user.id %> <th><%= link_to 'Edit', edit_book_path(@book) %> </th> <th><%= link_to 'delete', books_path, method: :delete %></th> <% end %> </tr>
books_controller.rb
def show @book = Book.find(params[:id]) @user = User.find(params[:user_id]) end
と記述し、<% if @user.id == @current_user.id %>とすることによって
投稿者が自分以外だった場合は編集、削除を表示させないようにしようと思いましたが、このようなエラーが出ました。
おそらくbooks_controller.rb内で@user = User.find(params[:user_id])を使っていることがおかしいのかなとは思うのですが、表示する投稿に紐づけられたuserを指定しcurrent_userと同じか確かめるためにはどのようにしたら良いのでしょうか。
何かアドバイスいただけたら幸いです。
book.rb
belongs_to :user, dependent: :destroy
user.rb
has_many :books, dependent: :destroy
回答1件
あなたの回答
tips
プレビュー