質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

568閲覧

[Rails]ブログサービスで投稿に対するコメント機能実装中のエラー

Tsukaji

総合スコア18

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/05/02 16:32

前提・実現したいこと

ドットインストールのRails入門の#24を学習中です。
ブログサービスを作成中で、投稿に対するコメント機能を実装中のエラーになります。

発生している問題・エラーメッセージ

ActiveRecord::StatementInvalid in Posts#show

該当のソースコード

/views/posts/show.html.erb <h3>Comments</h3> <%= form_for([@post, @post.comments.build]) do |f| %> <p> <%= f.text_field :body %> </p>

試したこと

変にいじっておかしくなるのも嫌なので、何も試していません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

iwamot

2019/05/03 10:21

エラーメッセージはそれだけでしたか? 前後にいろいろと出力されているようなら、それも含めていただけると回答の参考になります。
Tsukaji

2019/05/06 13:11

回答ありがとうございます。 Showing /home/vagrant/rails_lessons/myblog/app/views/posts/show.html.erb where line #5 raised: Could not find table 'comments' こちらのメッセージも出ております。
Tsukaji

2019/05/06 13:18

投稿詳細ページにコメント機能を実装中で、指示通りにコーディングしたのですが、 投稿一覧ページ(posts/index)から投稿詳細ページ(posts/show)に飛んだときにこちらのエラーメッセージが発生してしまったという次第です。
guest

回答1

0

ベストアンサー

show

1<h3>Comments</h3> 2<%= form_for([@post, @post.comments.build]) do |f| %> 3<p> 4 <%= f.text_field :body %> 5</p>

こちらは本当にこれだけでしょうか?
だとするとまず、最終行に<% end %>を入れて見ましょう

投稿2019/05/03 11:50

haneru

総合スコア440

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tsukaji

2019/05/06 13:12

回答ありがとうございます。 下記が該当ページの全文です。 <h2><%= @post.title %></h2> <p><%= simple_format @post.body %></p> <h3>Comments</h3> <%= form_for([@post, @post.comments.build]) do |f| %> <p> <%= f.text_field :body %> </p> <p> <%= f.submit %> </p> <% end %>
haneru

2019/05/06 13:25

追記修正のコメントを拝見させていただきましたが、`Could not find table 'comments'`とあるため、@postとcommentsの関連付けが上手く行っていないように思えます。 PostとCommentのモデルのコードを見せてください。
Tsukaji

2019/05/07 05:10

以下、post.rb class Post < ApplicationRecord has_many :comments validates :title,presence:true,length:{minimum:3,message:"Too short to post"} validates :body,presence:true end 以下、comment.rb class Comment < ApplicationRecord belongs_to :post validates :body, presence:true end よろしくお願いいたします。
haneru

2019/05/07 05:18

ソースを見ると関連付けはあってそうなので、DBにcommentテーブルがないのかもしれません。 `bundle exec rake db:migrate:reset`などで一度データベースをリセットしてみてはいかがでしょうか?
Tsukaji

2019/05/07 07:02

リセットしてやり直してみます、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問