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

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

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

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

Ruby on Rails

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

Q&A

1回答

6535閲覧

NoMethodError in Posts#newとエラが表示される

jimbooy08

総合スコア7

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2018/02/22 09:23

編集2018/02/22 10:18

新規投稿画面を作ろうとRailsを学んでいましたが
なぜかブラウザー表示でエラーが発生します。

/sample_app/app/views/posts/new.html.erb

HTML(rails)

1<h1>新規投稿</h1> 2<!-- form_for部分 --> 3 <%= form_for(@post) do |f| %> 4 5 <h4>タイトル</h4> 6 <%= f.text_field :title %> 7 8 <h4>本文</h4> 9 <%= f.text_area :body %> 10 11 <%= f.submit '投稿' %> 12 13 <% end %>

/sample_app/config/routes.rb

Ruby

1Rails.application.routes.draw do 2 get 'posts/new' 3 4 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 5 6 get '/top' => 'root#top' 7 8 post '/posts' => 'posts#create' 9 10en

/sample_app/app/controllers/posts_controller.rb

ruby

1class PostsController < ApplicationController 2 3 def new 4 @post = Post.new 5 end 6 7 # 以下を追加 8 def create 9 # ストロングパラメーターを使用 10 post = Post.new(post_params) 11 # DBへ保存する 12 post.save 13 # 新規投稿画面へリダイレクト 14 redirect_to '/posts/new' 15 end 16 17 private 18 19 def post_params 20 params.require(:post).permit(:title, :body, :category) 21 end 22end

/sample_app/db/migrate/20180222080918_create_posts.rb

Ruby

1class CreatePosts < ActiveRecord::Migration[5.1] 2 def change 3 create_table :posts do |t| 4 # 以下の2行を追加 5 t.string :title 6 t.string :body 7 t.timestamps 8 end 9 end 10end

表示されるエラー画面
![エラー画面

どこがいけないのかがわかりません。
ご教示お願いします。

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

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

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

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

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

guest

回答1

0

こんにちは。いくつかこちらで予測している点もありますが、以下のようにしてみてはいかがでしょうか?

エラーの原因

Postモデルにtitleというカラムがない。
見た所、

name created_at updated_at

の3カラムのようです。

このエラーの対処法

質問文にある、migrationファイルですが、これは確かにPostモデルにtitleカラムを追加するものですね。
$ rails db:migrate を実行してみてください。

それでも直らない場合

おそらく学習中に何らかのタイミングでnameカラムを追加してしまったのだと思います。
nameカラムはいらないということでしたら、

$ rails g migration RemoveNameFromPostとコマンドを実行し、できたmigrationファイルを以下のようにして、$ rails db:migrate を実行してみてください。

class RemoveNameFromPost < ActiveRecord::Migration[5.1] def change remove_column :posts, :name, :string end end

投稿2018/02/22 12:37

kentos

総合スコア68

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問