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

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

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

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

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

Q&A

2回答

1417閲覧

rails でDBにデータが入らない。。。

ttt452

総合スコア4

Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

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

0グッド

0クリップ

投稿2021/05/07 19:30

前提・実現したいこと

railsでwebアプリケーションを作っている。
ユーザの自己紹介文introductionを表示させたい。

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

ユーザのプロフィール編集画面で、自己紹介文introductionに入力しても、
プロフィール画面でデータが表示されない。
そもそもデータが登録されていなかった。。。
なぜ登録されていないのでしょうか、何卒よろしくお願いいたします。

該当のソースコード

user_controller(抜粋)

def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) @user.update(user_params) redirect_to user_path(@user.id) end private def user_params params.require(:user).permit(:name, :profile_image) end

users/edit.html(すべて)

<main> <p id="notice"></p> <div class="container"> <div class="row"> <div class="col-sm-12 col-md-8 col-lg-5 px-5 px-sm-0 mx-auto"> <h2>User info</h2> <form enctype="multipart/form-data" action="/users/<%= @user.id %>" accept-charset="UTF-8" method="post"> <input name="utf8" type="hidden" value="✓"><input type="hidden" name="_method" value="patch"> <input type="hidden" name="authenticity_token" value="O3zzwfcc/pbXB6SgdABfmfP39Je0Q+DsgBiW2OFAdef81lKAKoNBDWd3FPI4xt0TByjAH+SlGCmLkzu7ctwqrg=="> <div class="form-group"> <label for="user_name">Name</label> <input class="form-control name" type="text" value="<%= @user.name %>" name="user[name]" id="user_name"> </div> <div class="form-group"> <label for="user_image">Image</label> <input value="{}" data-reference="b6e51ecc8a2df13522a9cddf10ded38f" type="hidden" name="user[profile_image]"> <input class="form-control-file user_image" data-reference="b6e51ecc8a2df13522a9cddf10ded38f" include_hidden="false" type="file" name="user[profile_image]" id="user_profile_image"> </div> <div class="form-group"> <label for="user_introduction">Introduction</label> <textarea class="form-control introduction" value="<%= @user.introduction %>" name="user[introduction]" id="user_introduction"></textarea> </div> <div class="form-group"> <input type="submit" name="commit" value="Update User" class="btn btn-secondary" data-disable-with="Update User"> </div> </form> </div> </div> </div> </main>

users/show.html(抜粋)

<tr> <th>introduction</th> <th><%= @user.introduction %></th> </tr>

model/user(すべて)

class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :books, dependent: :destroy attachment :profile_image end

migration/user(すべて)

# frozen_string_literal: true class DeviseCreateUsers < ActiveRecord::Migration[5.2] def change create_table :users do |t| ## Database authenticatable t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" ## Recoverable t.string :reset_password_token t.datetime :reset_password_sent_at ## Rememberable t.datetime :remember_created_at ## Trackable # t.integer :sign_in_count, default: 0, null: false # t.datetime :current_sign_in_at # t.datetime :last_sign_in_at # t.string :current_sign_in_ip # t.string :last_sign_in_ip ## Confirmable # t.string :confirmation_token # t.datetime :confirmed_at # t.datetime :confirmation_sent_at # t.string :unconfirmed_email # Only if using reconfirmable ## Lockable # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts # t.string :unlock_token # Only if unlock strategy is :email or :both # t.datetime :locked_at t.string :name t.string :profile_image_id t.text :introduction t.timestamps null: false end add_index :users, :email, unique: true add_index :users, :reset_password_token, unique: true # add_index :users, :confirmation_token, unique: true # add_index :users, :unlock_token, unique: true end end

試したこと

●表示するまでのでーたの流れを追跡
・フォームに入力
・送信され、DBに記録される
・表示画面で呼び出される
・タグで表示

●model、DBに異常があるのでは?
・migration成功している。すべてup
・中身の確認
→入ってない!!!

$ rails dbconsole SQLite version 3.7.17 2013-05-20 00:56:22 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .headers on sqlite> select * from users; id|email|encrypted_password|reset_password_token|reset_password_sent_at|remember_created_at|name|profile_image_id|introduction|created_at|updated_at 1|aaa@gmail.com|$2a$12$LAe2x51.ncwsB7BffrBhh.te8NJUK9ASly08mMXHHkbqVQDqL4wmK||||taku824|f7ce105eea01b63387722c6c1be07caf50c8e8e3918edc911584b0c4b46e||2021-05-06 23:51:32.480353|2021-05-07 19:09:51.870388 2|bbb@gmail.com|$2a$12$VqMRDvLJnAtpIaPpKHhtf.IU/5MGdIMerbR9CnVIxGpfdTWH3269K||||bbb|||2021-05-06 23:55:28.213544|2021-05-06 23:55:28.213544 sqlite>

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

windows10
cloud9

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

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

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

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

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

guest

回答2

0

user_controllerのストロングパラメーターにintoroductionの記載がないからだと思います。
この中で使っているpermitメソッドはparamsで取得したキーのうち、データベースに保存してもいいものを許可するメソッドです。つまり、:intorductionがない為、保存しない設定になっています。なので、追記してみてください。

def user_params params.require(:user).permit(:name, :profile_image, :introduction) end

参考までに。
https://pikawaka.com/rails/strong_parameter#ストロングパラメータの定義の仕方

投稿2021/05/12 04:00

tani__san929

総合スコア61

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

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

0

update で save していないからです

投稿2021/05/09 14:51

winterboum

総合スコア23567

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問