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

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

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

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

Ruby on Rails

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

Q&A

1回答

940閲覧

RubyonRails6 リダイレクト後の NoMethodError

Anana

総合スコア1

Ruby on Rails 6

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/09/27 05:28

編集2020/09/27 06:17

前提・実現したいこと

現在、RubyonRails6 で作品を制作しています。
ログイン・ログアウト・投稿 などがあるものです。

その作業の中で、投稿後にリダイレクト機能を実装すると NoMethodError が出てきてしまします。
また、投稿内容は保存されています。

また、該当するhtml.erbのビューの他に <%= @goal.title %> の記述があると他のリダイレクトページでも同じエラーが発生してしまいます。

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

NoMethodError in Goal#index Showing /Users/tateishiayu/Desktop/projectname 2/app/views/goal/index.html.erb where line #2 raised: undefined method `title' for nil:NilClass

イメージ説明

該当のソースコード

<%= "idが「#{@id}」の画面です" %> <%= @goal.title %> ←ここ <%= @goal.created_at %>

よろしくお願いします。

###controllers

class GoalController < ApplicationController def form end def index @goal = Goal.find_by(id: params[:id]) end def create @goal = Goal.new(description: params[:description]) @goal.save @goal = Goal.new(title: params[:title]) @goal.save redirect_to("/users/:id") end end

###html.erb

<%= "idが「#{@id}」の画面です" %> <%= @goal.title %> <%= @goal.created_at %>

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

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

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

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

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

no1knows

2020/09/27 06:08

コントローラーと省略していないindex.html.erbを追記してください。 またスクリーンショットを見るとエラーは<%= @goal.title %>で出ています。
Anana

2020/09/27 06:14 編集

no1knows様 ありがとうございます。 <%= @goal.title %>の修正とコントローラーとhtml.erbを追記しました。 また、html.erb は省略をしてしません。現在ページに載せている内容になります。
guest

回答1

0

うーん、基本を抑えていないようなので、これだとほぼ全コード書き直しになりそうですね。。。


まずは基本を勉強することをおすすめします。
スムーズな入り方としては下記のような形でしょうか。
0. ProgateでRailsを勉強
0. Railsチュートリアルで勉強


でもどうにか作りたいのであれば新しいアプリを作り直して、コンソールで下記コマンドを実行すれば期待するものを作ることができます。

Ruby

1rails g scaffold tgoal title:string description:text # Scaffoldで色々とうまく作る

またScaffoldでできたたくさんのファイルは、どういったものかというのは下記をみてください。
http://kanjihtmt.github.io/blog/2015/04/02/scaffold/

※最低限、この生成されたコードが理解できていないとどこへ行っても厳しいと思います。

投稿2020/09/27 06:27

編集2020/09/27 23:04
no1knows

総合スコア3365

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問