🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

3回答

5275閲覧

uninitialized constant PostsController::Postが発生しました・・・

kazu2929

総合スコア4

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2019/11/28 14:19

編集2020/01/08 16:04

*投稿内容が一度消えてしまったので再度UP致します。
ruby on railsにて、ブログを作成中にエラーが起こりました。

各Codeを下記に参照します。

app/controllers/posts_controller.rb

class PostsController < ApplicationController before_action :set_post, only: [:show, :edit, :update, :destroy] # GET /posts # GET /posts.json def index @posts = Post.all end # GET /posts/1 # GET /posts/1.json def show end # GET /posts/new def new @post = Post.new end # GET /posts/1/edit def edit end # POST /posts # POST /posts.json def create @post = Post.new(post_params) respond_to do |format| if @post.save format.html { redirect_to @post, notice: 'Post was successfully created.' } format.json { render :show, status: :created, location: @post } else format.html { render :new } format.json { render json: @post.errors, status: :unprocessable_entity } end end end # PATCH/PUT /posts/1 # PATCH/PUT /posts/1.json def update respond_to do |format| if @post.update(post_params) format.html { redirect_to @post, notice: 'Post was successfully updated.' } format.json { render :show, status: :ok, location: @post } else format.html { render :edit } format.json { render json: @post.errors, status: :unprocessable_entity } end end end # DELETE /posts/1 # DELETE /posts/1.json def destroy @post.destroy respond_to do |format| format.html { redirect_to posts_url, notice: 'Post was successfully destroyed.' } format.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions. def set_post @post = Post.find(params[:id]) end # Never trust parameters from the scary internet, only allow the white list through. def post_params params.require(:post).permit(:name, :title, :content) end end

app/posts/index.html.erb

<h2>My Posts</h2> <ul> <% @posts.each do |post| %> <li><%= post.title %></li> <% end %> </ul>

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base protect_from_forgery with: :exception end

app/views/posts/index.html.erb

<p id="notice"><%= notice %></p> <h1>Posts</h1> <table> <thead> <tr> <th>Name</th> <th>Title</th> <th>Content</th> <th colspan="3"></th> </tr> </thead> <tbody> <% @posts.each do |post| %> <tr> <td><%= post.name %></td> <td><%= post.title %></td> <td><%= post.content %></td> <td><%= link_to 'Show', post %></td> <td><%= link_to 'Edit', edit_post_path(post) %></td> <td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td> </tr> <% end %> </tbody> </table> <br> <%= link_to 'New Post', new_post_path %>

エラー画像
イメージ説明

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

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

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

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

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

IPU

2019/12/16 10:37

参考にしたURLがあるなら、貼ってください。
kazu2929

2020/01/08 15:59

http://dqn.sakusakutto.jp/2012/03/rails32blog.html こちらのURLを参考にしました。 app/views/home/index.html.erb を編集 <h1>Home#index</h1> <p>Find me in app/views/home/index.html.erb</p> <h1>Hello, Rails!</h1> <%= link_to "My Blog", posts_path %> 上記の進行後スクショのようなエラーが出ました。
guest

回答3

0

いろいろと欠けている予感がするので、もし差し支えなければ、どのサイトを見て勉強中なのか教えていただければありがたいです
それによって何が不足もしくは間違っていてエラーが出ているのか推測できます
ちなみに、PostsControllerは間違いはありません

投稿2019/12/13 02:59

story_aniki

総合スコア197

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

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

kazu2929

2019/12/15 09:11

ご回答ありがとうございます ドットインストールをみて学習中です。下記がPostsControllerです。間違いは無いはずですが・・・ class PostsController < ApplicationController def index @posts = Post.all.order(created_at: 'desc') end end どうぞよろしくお願いいたします。
guest

0

もう少し情報が欲しいですね
postsテーブルがなかったので作成したとのことですがどういう手順で作成したのか、この手順を間違っている可能性があります
エラーメッセージが変わらないという事はpostsテーブルが作成されていない可能性があります
もともとはどういう経緯でpostsテーブルが作成されていなかったのでしょうか?
dotinstallの手順だと#5の「モデルを作ってみよう」で作成されているはずなのですが、なぜ作成されていなかったのかと、その後どのような方法で作成したかを教えていただければその辺に答えがあると思います

ちなみに、#5でおこなわれている

rails g model Post title:string body:text

が正しく行われていなかったのが原因だと思われます

投稿2019/12/16 14:14

story_aniki

総合スコア197

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

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

kazu2929

2020/01/08 16:02

一度ドットインストールから離れ、 http://dqn.sakusakutto.jp/2012/03/rails32blog.html こちらの記事でブログ作成の進行を進めておりましたが、 下記にてMy blogクリック後の画面でスクショのようなエラーが再び出ました。 app/views/home/index.html.erb を編集 <h1>Home#index</h1> <p>Find me in app/views/home/index.html.erb</p> <h1>Hello, Rails!</h1> <%= link_to "My Blog", posts_path %>
guest

0

app/models/post.rb はありますか?

投稿2019/11/28 14:48

winterboum

総合スコア23567

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

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

kazu2929

2019/11/28 15:07

ご回答ありがとうございます。ご回答の通り、model/post.rbが無かったので、追加しました。しかしその後補足情報のようなエラーが出ております。コードに何か問題があるのでしょうか?
winterboum

2019/11/28 15:35

DBにposts テーブルを作ってありますか?
kazu2929

2019/12/09 05:49

winterboum様 ご回答が遅れまして申し訳ありませんでした。 postsテーブルが無かったので作成しましたが、エラー変わらずです・・・
winterboum

2019/12/09 08:02

エラーメッセージも変わりませんか?
kazu2929

2019/12/15 09:22

エラーメッセージも変わらずです・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問