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

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

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

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

Ruby on Rails

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

バリデーション

Validationとは特定の入力データが、求められた条件に当てまっているかをチェックするために使われます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

287閲覧

バリデーションの実装(空送信時)

kakedashi_mame

総合スコア1

Ruby

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

Ruby on Rails

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

バリデーション

Validationとは特定の入力データが、求められた条件に当てまっているかをチェックするために使われます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2020/10/09 10:31

編集2020/10/09 11:40

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Ruby on Railsでバリデーション の実装をしたいです。

空で送信した時にエラーメッセージが表示したく、色々い調べましたが
実装出来ず・・・

お力添えくださいませ。

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

NoMethodError in Books#index

Ruby on Rail

ソースコード

ruby

1~book_rb~ 2 3class Book < ApplicationRecord 4 5 validates :title, presence: true 6 validates :body, presence: true 7end

ruby

1~books_conttrole.rb~ 2 3def create 4 book = Book.new(book_params) 5 if book.save 6 redirect_to book_path(book.id) 7 else 8 render :index 9 end 10 end

ruby

1~index_html_erb~ 2 3<% if @book.errors.any? %> 4 <ul> 5 <% @book.errors.full_messages.each do |message| %> 6 <li><%= message %></li> 7 <% end %> 8 </ul> 9<% end %>

試したこと

恐らくindex_html_erbが違っているのかと勝手に予想してます・・・。
@bookのところをbookにしてみたり
ネットで調べて色々な方法試しましかが・・・

お力添えいただけると幸いです。

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

Rails 5.2.4.4

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

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

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

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

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

kakedashi_mame

2020/10/09 11:41

ご不便おかけしました ご丁寧にURLまでありがとうございます!
guest

回答1

0

ベストアンサー

Createアクションでインスタンス変数を生成していないため、viewに値を渡すことができていません。

ローカル変数bookではviewから参照できないからです。

def create @book = Book.new(book_params) if @book.save redirect_to book_path(@book.id) else render :index end end

尚、createアクションでのリダイレクトは以下短縮形でもBooks#showに遷移します。

redirect_to @book

投稿2020/10/09 12:15

編集2020/10/10 11:50
ykp_yk

総合スコア654

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問