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

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

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

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

HTML

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

Q&A

解決済

2回答

3157閲覧

【Rails】ブラウザ上にデータが反映されない

Miyuki0507

総合スコア2

Ruby on Rails

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

HTML

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

0グッド

0クリップ

投稿2020/04/29 06:54

前提・実現したいこと

Railsでブログの作成をしています。
タイトルと本文を一覧ページに載せたいです。

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

記事の投稿画面を作成し、タイトルと本文が入れられるようになっています。
送信を押すと、ブログの記事一覧に戻るようになっています。
ところが、本文のみの表示でタイトルが表示されません。

エラーメッセージ ### 該当のソースコード ```ここに言語名を入力 ソースコード ### 試したこと 以下のコードを見直して見たのですが、なぜ反映されないのかがわかりません。 index.html.erbには以下のコードを記述しています。 <% @blogs.each do |blog| %> <div class = "articles"> <p><%= blog.title %></p> <p><%= blog.text %></p> <% end %> </div> contollerには以下のコードを記述しています。 private def blog_params params.permit(:title,:text) end ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

ベストアンサー

newアクションに@blog = Blog.newを加えてみたらどうですか?
それでもダメなら、投稿画面のビューのコードをみたいです。

投稿2020/04/29 10:23

motoaki

総合スコア106

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

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

Miyuki0507

2020/04/29 10:33

回答ありがとうございます。 newアクションに追加してみましたが、変わりませんでした。 new.html.erbのコードはこちらです。 --------------------------------------------------------- <%= form_tag('/blogs', method: :post) do %> <br> <h3>投稿する</h3> <br> <textarea name="text" placeholder="title" rows="1" cols="20"></textarea> <br> <textarea name="text" placeholder="text" rows="10" cols="30"></textarea> <br> <input type="submit" value="SEND"> <% end %> ---------------------------------------------------------
motoaki

2020/04/29 10:50

ありがとうございます、投稿のフォームに問題ありそうですね。 こういうときはform_tagではなく、form_forを使うと簡単に実装できますよ。 参考リンク載せておきますので、一回チャレンジしてみてください。 https://qiita.com/shunsuke227ono/items/7accec12eef6d89b0aa9 https://railsguides.jp/form_helpers.html#%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%A8%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E7%B5%90%E3%81%B3%E4%BB%98%E3%81%91%E3%82%8B
Miyuki0507

2020/04/30 02:16

ありがとうございます。無事に反映することができました。
guest

0

Controllerのコードは4行だけでしょうか?
@blogsへ代入するような式もあると思いますので、全てのコードを載せて頂いた方が回答しやすいと思います。

あと、データベースにはtextだけでなく、ちゃんとtitle自体も保存されてる状態でしょうか??

投稿2020/04/29 08:41

gnfreeworks

総合スコア306

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

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

Miyuki0507

2020/04/29 09:20

回答ありがとうございます。ご丁寧にありがとうございます。 Controllerへは他のコードも記述しております。 blogs_Controller.rb へのコードは以下が全てです。 -------------------------------------------------------------------- class BlogsController < ApplicationController def index @blogs = Blog.all.order(created_at: 'desc') end def new end def show end def create @blog = Blog.new(blog_params) @blog.save redirect_to blogs_path end def destroy end private def blog_params params.permit(:title,:text) end end -------------------------------------------------------------------- データベースへはtitleカラムを作っています。 ブラウザから、入力はできるのですが データベースに保存ができておりません。
gnfreeworks

2020/04/29 15:48

Controllerのコードありがとうございます。 そうですね、他の方がおっしゃってるように、newアクションに「@blog = Blog.new」は必要ですね。 データベースに保存がされないということですが、下記が原因かもしれません。 params.permit(:title,:text) の部分ですが、 paramsの後ろに「.require(:blog)」がありません。 ↓ ◯ params.require(:blog).permit(:title,:text) 「.require」が必要な理由は、paramsの中には入力したデータ以外にも色々とデータが含まれますが、 その中で、blogモデルに保存したいデータの集まりだけを抽出するのに必要となるからです。 詳しい説明はこのサイトを読まれると分かりやすいと思います。 https://techblog.kyamanak.com/entry/2017/08/29/012909 一度上記の内容を試してデータが保存出来るか確認してみて下さい。
Miyuki0507

2020/04/30 02:17

ありがとうございます。Controllerのコードも見直しました! 無事に反映することができました。
gnfreeworks

2020/04/30 02:30

良かったです。頑張って下さい^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問