下記のサイトを参考に投稿アプリを作ったのですが、
【Rails 5.2】 Active Storageの使い方
新規投稿機能の実装
active strageを使って画像投稿機能をつくっているのですが、そのときに投稿一覧ページに投稿の表示がされないというトラブルになっています
エラーメッセージはなく、単純に動かないというトラブルです
困っています助けてください
#該当のソースコード
いか、投稿一覧ページ(index.html.erb)
<h2>ALL POST!</h2> <%= link_to 'もう一回行っちゃう?wwww', new_post_path %> <table> <tr> <th>title</th> <th>text</th> <th>image</th> <th colspan="3"></th> </tr> <% @comment.each do |comment| %> <% @posts.each do |post| %> <tr> <td><%= post.title %></td> <td><%= post.body %></td> <% if @comment.image.attached? %> <td><%= image_tag @comment.image %></td> <% end %> <% end %> </tr> <% end %> </table> <%= yield %>
以下、新規投稿ページ
<%= form_with model: @post, local: true do |form| %> <p> <%= form.label :タイトル %><br> <%= form.text_field :title %> </p> <p> <%= form.label :内容 %><br> <%= form.text_area :body %> </p> <p> <%= form_with model: @comment, local: true do |form| %> <div class="field"> <%= form.label :images %><br> <%= form.file_field :images ,multiple: true,authenticity_token: true%> <p> <td><input type="submit" value="投稿"></td> </p> <% end %> </div> </p> <p> <%= yield %> <% end %> </p>
以下、テキストを投稿機能を作るときに作ったcontroller
class PostsController < ApplicationController def index @posts = Post.all @comment = Comment.all end def new @post = Post.new end def create @post = Post.new(post_params) @post.save redirect_to action: 'index' end private def post_params params.require(:post).permit(:title, :body) end end
いか、画像投稿機能を作るときに作ったcontroller
class CommentsController < ApplicationController def idndex @comment = Comment.all end def new @comment = Comment.new end def create @comment = Comment.create params.require(:comment).permit(:content, :image) # POINT @comment.save redirect_to @comment end def show @comment = Comment.find(params[:id]) end def edit @comment = Comment.find(params[:id]) end def update @comment = Comment.find(params[:id]) @comment.update params.require(:comment).permit(:content, :image) # POINT redirect_to @comment end end
ログ
Processing by PostsController#create as HTML web_1 | Parameters: {"utf8"=>"✓", "authenticity_token"=>"r53Nupv5tPGPeSQOiMq/tktaETd2Vf0sL712vnlqkoc5gHDvdpiAemcaPPJL4OY55Z/YmHw85xJm6kAP4avMKw==", "post"=>{"title"=>"ddddddd", "body"=>"xxxxxxxxxxxxxx"}, "images"=>["IMG_20201122_180927.jpg"]} web_1 | (0.4ms) BEGIN web_1 | ↳ app/controllers/posts_controller.rb:14 web_1 | Post Create (0.6ms) INSERT INTO `posts` (`title`, `body`, `created_at`, `updated_at`) VALUES ('ddddddd', 'xxxxxxxxxxxxxx', '2021-01-28 08:31:27', '2021-01-28 08:31:27') web_1 | ↳ app/controllers/posts_controller.rb:14 web_1 | (2.1ms) COMMIT web_1 | ↳ app/controllers/posts_controller.rb:14 web_1 | Redirected to http://localhost:3000/posts web_1 | Completed 302 Found in 15ms (ActiveRecord: 3.1ms) web_1 | web_1 | web_1 | Started GET "/posts" for 172.18.0.1 at 2021-01-28 08:31:27 +0000 web_1 | Cannot render console from 172.18.0.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 web_1 | Processing by PostsController#index as HTML web_1 | Rendering posts/index.html.erb within layouts/application web_1 | Comment Load (0.5ms) SELECT `comments`.* FROM `comments` web_1 | ↳ app/views/posts/index.html.erb:10 web_1 | Rendered posts/index.html.erb within layouts/application (3.1ms) web_1 | Completed 200 OK in 190ms (Views: 161.2ms | ActiveRecord: 0.5ms) web_1 | web_1
#試したこと
<%= yield %>を投稿詳細ページの方にも追加しました
##動作環境
intel mac big sur
rails 5.2.2
ruby 2.6.5
docker 20.10.0
#追記
posts/index.html.erbにの以下のコード
<% @posts.comment.each do |comment|%>
を載せて見た後に、postのほうのmodelに以下のコードを追加したら
belongs_to :comments
エラーになってしまいました。
スクショを貼っておきます