質問内容
①Railsを使っておすすめの本を投稿できるアプリケーションを作成しています。
books.show.htmlを表示させたいのですが、インスタンス変数の設定がうまくできず困っています。
viewとcontrollerで足りない記述やいらない記述などがあるのかもしれないのですが、自力で解決できないので教えていただきたいです。
②もしよろしければ、変数の定義が苦手でこれでよく躓いてしまうので、なにか定義する時のコツ(気を付けたほうがいいことなど)を併せてあれば教えていただけると助かります。
カリキュラムを読んで一旦はわかった気になるのですが、実践するとどうも理解できていないと痛感します......
実現したいこと
Bookの詳細ページの表示をさせたいです。
発生している問題・エラーメッセージ
NameError in BooksController#show undefined local variable or method `book' for #<BooksController:0x00000007b36be8> Did you mean? @book
該当のソースコード
ruby
1def show 2 @book = Book.find(params[:id]) 3 @books = book 4 end
試したこと
インスタンス変数の定義・記述を調べて確認したのですが解決できませんでした。
補足情報(FW/ツールのバージョンなど)
Cloud9,EC2,t2.micro,Rails version: 6.1.6.1
Ruby version: ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
ruby
1#views/books/show.html.erb 2<!DOCTYPE html> 3<html> 4 <head> 5 <body> 6 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> 7 <header> 8 <main> 9 <h1>Book detail</h1> 10 <%= render 'book', books: @books %> 11 <%= @books.each do |book| %> 12 <%= link_to book_path(book.id) do %> 13 <%= profile_image book.get_image %> 14 <%= link_to "Edit", edit_book_path(book.id) %> 15 <% end %> 16 <% if book.user == curent_user %> 17 <%= link_to "Destroy", books_path(book), method: :delete %> 18 <% end %> 19 <% end %> 20 </main> 21 </header> 22 </body> 23 </head> 24</html>
ruby
1#view/books/_book.html.erb 2<% books.each do |book| %> 3 <div> 4 <%= link_to user_path(book.id) do %> 5 <P><%= image_tag book.user.get_profile_image(100,100) %></P> 6 <% end %> 7 <h3>Title</h3><br> 8 <%= link_to book.title, book_path(book.id) %></p> 9 <h3>Opinion</h3><br> 10 <%= book.body %> 11 </div> 12<% end %>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/01 01:49