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

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

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

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby on Rails

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

HTML

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

Q&A

解決済

2回答

1100閲覧

paramsの値がビューに反映されない

forest0720

総合スコア5

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby on Rails

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

HTML

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

0グッド

0クリップ

投稿2020/07/08 03:30

課題
簡単な投稿機能を実装しているのですが、paramsに入ったデータがビューに反映されません。

状態
sequle proに直入力するデータは反映するのでビューからの呼び出し自体は出来ていると思います。
エラー画面は特になく、データ反映がないままredirect_toに行きます。

検証
binging.pryを使用した結果です。
<ActionController::Parameters {"contents"=>"あかさたな"} permitted: true>

初学者のため基礎的な部分かと思いますが、ご教授下さい。下記コードです。

top_page_controller

ruby

1class TopPageController < ApplicationController 2 def index 3 @toppages = TopPage.all 4 end 5 6 def new 7 @toppage = TopPage.new 8 end 9 10 def create 11 TopPage.create(top_page_params) 12 redirect_to top_page_index_path 13 end 14 15 def show 16 end 17 18 private 19 def top_page_params 20 params.require(:top_page).permit(:contents) 21 end 22end

new.html.haml

ruby

1.post 2 = form_for @toppage, url:{controller: 'top_page', action: 'create'} do |f| 3 .post__title 4 悩み投稿 5 .post__form 6 ◎内容 7 .post__form__text 8 = f.text_area :contents, class: 'post__form__text__area' 9 .post__genre 10 .post__genre__title 11 ◎ジャンル 12 .post__genre__type 13 お金 14 .post__name 15 .post__name__title 16 ハンドルネーム 17 .post__name__type 18 mori 19 .post__tag 20 .post__tag__tag1 21 タグ1 22 .post__tag__tag2 23 タグ2 24 .post__tag__tag3 25 タグ3 26 .post__btn 27 .post__btn__link 28 =f.submit "投稿する"

index.html.haml

ruby

1.top 2 %ul.top__side 3 ジャンル 4 %li.top__side__love 5 恋愛 6 %li.top__side__work 7 仕事 8 %li.top__side__money 9 お金 10 %li.top__side__friend 11 友人 12 %li.top__side__school 13 学校 14 %li.top__side__other 15 その他 16 .top__consultation 17 .top__consultation__title 18 お悩み一覧 19 = @toppages.each do |top_page| 20 .top__consultation__text 21 = top_page.contents 22 .top__consultation__text__time 23 = top_page.created_at

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

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

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

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

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

guest

回答2

0

自己解決

ruby

1class TopPage < ApplicationRecord 2 belongs_to :user 3 belongs_to :category 4end

外部キー制約がかかっていることを、失念しておりまだ実装していないので一旦コメントアウトしたところ
表示されました!

ご回答ありがとうございました!

投稿2020/07/08 04:27

forest0720

総合スコア5

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

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

0

その create のcodeでは失敗してもエラーメッセージなしに遷移します。
多分createに失敗していますので、その原因を見つけましょう。
1 class TopPage の定義部分を載せてください。
2 TopPage.create(top_page_params) の createを!付きにして
TopPage.create!(top_page_params) にすると画面になんでだめだったかが出ると思います。それを載せてください

投稿2020/07/08 03:39

winterboum

総合スコア23567

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

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

forest0720

2020/07/08 04:26

ご回答ありがとうございます! !マークつけてエラー文出したところ Validation failed: User must exist, Category must exist と表示され、外部キーがnullの状態だといかんのか?と思い一旦アソシエーション外してみたらうまくできました!ありがとうございます!外部キー制約がかかっていること忘れておりました。 先にユーザー登録の実装からすべきでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問