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

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

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

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1099閲覧

Ruby(Ruby on Rails)で投稿編集画面を作成したのですが、投稿一覧画面及び詳細画面に編集結果が反映されません。

TAKANORI-1125

総合スコア2

Ruby

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/12/16 09:00

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

Ruby(Ruby on Rails)で投稿編集画面を作成したのですが、投稿一覧画面及び詳細画面に編集結果が反映されません。 エラーメッセージは、表示されておりません。

該当のソースコード

bookscontrollerrb

1class BooksController < ApplicationController 2 def show 3 @book = Book.find(params[:id]) 4 end 5 6 def index 7 @books = Book.all 8 end 9 10 def new 11 @book = Book.new 12 end 13 14 def create 15 book = Book.new(book_params) 16 book.save 17 redirect_to book_path(book.id) 18 end 19 20 def edit 21 @book = Book.find(params[:id]) 22 23 end 24 25 def update 26 book = Book.find(params[:id]) 27 book.update(book_params) 28 redirect_to book_path(book.id) 29 30 end 31 32 def destroy 33 end 34 35 private 36 def book_params 37 params.permit(:title, :body) 38 end 39end

indexhtmlerb

1<h3>Books</h3> 2 3<table> 4<thead> 5<tr> 6<th>title</th> 7<th>body</th> 8<th></th> 9</tr> 10</thead> 11 12<tbody> 13<% @books.each do |book| %> 14<tr> 15<td> 16<%= book.title %> 17</td> 18<td> 19<%= book.body %> 20</td> 21<td> 22<%= link_to "show", book_path(book.id) %> 23<%= link_to "edit", edit_book_path(book.id) %> 24</td> 25</tr> 26<% end %> 27</tbody> 28</table> 29 30<h3>New book</h3> 31<%= form_with model:@book, local:true do |f| %> 32 <h5>Title</h5> 33 <%= f.text_field :title %> 34 <h5>Body</h5> 35 <%= f.text_area :body %> 36 <br><%= f.submit "Create Book" %></br> 37<% end %>

edithtmlerb

1<h3>Editing Book</h3> 2<%= form_with model:@book, local:true do |f| %> 3 <h5>Title</h5> 4 <%= f.text_field :title %> 5 <h5>Body</h5> 6 <%= f.text_area :body %> 7 <br><%= f.submit "Update Book"%></br> 8<% end %> 9<%= link_to "Show", book_path %> 10<%= link_to "Back", books_path %>

showhtmlerb

1<h5>Title:</h5> 2<%= @book.title %> 3<h5>Body:</h5> 4<%= @book.body %> 5<br></br> 6<%= link_to "Edit", edit_book_path(@book) %> 7<%= link_to "Back", books_path %>

試したこと

色々調べ試してみましたが、解らず、また独学のため周りに聞ける方がおらず、質問させていただきました。

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

rails バージョン 5.2.5, rubyバージョン2.6.8
作成したモデルは、Book テーブルはbooksになります。カラムは、title, bodyになります。

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

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

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

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

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

guest

回答1

0

ベストアンサー

保存する時は、必ずcreate!update!save!などのビックリマーク付きのメソッドを使ってください。
問題がある時は例外が発生するし、ブラウザにエラーが出たり、development.logにスタックトレースが出力されるので、理由が分かる場合があります。

savecreateupdateはエラーが起きていても例外が起きず、
true/falseだけしか返ってこないため保存できていない場合の理由が分からない事が多いです。

投稿2021/12/16 09:14

mingos

総合スコア4032

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

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

TAKANORI-1125

2021/12/16 09:26

お忙しい中、回答ありがとうございます。 コントローラーアクション内のメソッドに ビックリマーク付きのメソッドを定義してもエラー画面が出てきませんでした。
mingos

2021/12/16 09:42

リダイレクトしているからだと思います。 いったん、リダイレクトの行をコメントにするか、 ログの内容を確認してみてください。 log/development.log に何か出力されていると思います。
TAKANORI-1125

2021/12/16 10:21

リダイレクトの行をコメントにし、ログを確認したところ、ストロングパラメーターが原因と判明しました。 今回のエラー原因が判らず、悩んでました。 お忙しい中、お付き合いいただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問