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

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

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

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

Q&A

解決済

1回答

704閲覧

rails のdeviceについて一部db にデータが保存されないのを解消したいです。

Ms.suger

総合スコア3

Ruby on Rails

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

0グッド

0クリップ

投稿2021/11/26 12:33

実現したいこと

railsで簡単なECサイトを作る練習をしており、customerの認証についてdeviceを用いて、内容をカスタマイズして実装したにですが、一部dbに保存されていないような挙動をしているように見えるので、解消したいです。

##前提
保存されていないのはcustomer.postal_codeとcustomer.addressです。
customerのshowやedit画面に反映されていません。
デバックのツールの使用に慣れておらず、dbへの格納ができているかどうかの確認ができていません。

    
##関連のありそうなソースコード

schema.rb

Ruby

1 2>>3create_table "customers", force: :cascade do |t| 4 t.string "email", default: "", null: false 5 t.string "encrypted_password", default: "", null: false 6 t.string "reset_password_token" 7 t.datetime "reset_password_sent_at" 8 t.datetime "remember_created_at" 9 t.string "first_name" 10 t.string "last_name" 11 t.string "first_name_kana" 12 t.string "last_name_kana" 13 t.string "postal_code" 14 t.string "address" 15 t.string "tel" 16 t.boolean "is_deleted", default: false, null: false 17 t.datetime "created_at", null: false 18 t.datetime "updated_at", null: false 19 t.index ["email"], name: "index_customers_on_email", unique: true 20 t.index ["reset_password_token"], name: "index_customers_on_reset_password_token", unique: true

public/customer/show.html.erb

ruby

1<div class="container my-5"> 2 <%= render "shared/flash_message" %> 3 <div class="row"> 4 <div class="offset-sm-1"> 5 <h2 class="red-border px-3 pb-1">My Page</h2> 6 </div> 7 </div> 8 9 <div class="row my-3"> 10 <div class="offset-sm-3"> 11 <strong class="red-border px-3 pb-1">登録情報</strong> 12 </div> 13 </div> 14 15 16 <div class="row"> 17 <div class="offset-sm-4 col-sm-4"> 18 <table class="table table-borderless table-hover"> 19 <tr class="brown-border"> 20 <td>氏名</td> 21 <td> 22 <%= @customer.last_name %> 23 <%= @customer.first_name %> 24 </td> 25 </tr> 26 27 <tr class="brown-border"> 28 <td>フリガナ</td> 29 <td> 30 <%= @customer.last_name_kana %> 31 <%= @customer.first_name_kana %> 32 </td> 33 </tr> 34 35 <tr class="brown-border"> 36 <td>郵便番号</td> 37 <td><%= @customer.postal_code %></td> 38 </tr> 39 40 <tr class="brown-border"> 41 <td>住所</td> 42 <td><%= @customer.address %></td> 43 </tr> 44 45 <tr class="brown-border"> 46 <td>電話番号</td> 47 <td><%= @customer.tel %></td> 48 </tr> 49 50 <tr class="brown-border"> 51 <td>メールアドレス</td> 52 <td><%= @customer.email %></td> 53 </tr> 54 </table> 55 56 <div class="row"> 57 <%= link_to "編集する", edit_customer_path(@customer), class: "btn btn-outline-danger mx-auto my-1" %> 58 </div> 59 <div class="row"> 60 <%= link_to "パスワードを変更する", edit_customer_registration_path, class: "btn btn-outline-danger mx-auto my-1" %> 61 </div> 62 63 </div> 64 65 <div class="offset-sm-1 col-sm-3"> 66 <div class="row"> 67 <%= link_to "配送先一覧を見る", '/deliveries', class: "btn btn-primary btn-outline-danger my-1" %> 68 </div> 69 <div class="row"> 70 <%= link_to "注文一覧を見る", orders_path, class: "btn btn-primary btn-outline-danger my-1" %> 71 </div> 72 </div> 73</div> 74

application_controller.rb

ruby

1class ApplicationController < ActionController::Base 2 protect_from_forgery with: :exception 3 def after_sign_in_path_for(resource) 4 customer_path(current_customer.id) 5 end 6 7 8 def after_sign_out_path_for(resource) 9 root_path # ログアウト後に遷移するpathを設定 10 end 11 12 def require_login! 13 if session[:customer_email].nil? 14 redirect_to login_path 15 end 16 end 17# before_action :authenticate_customer!,except: [:top,:about] 18 19 add_flash_types :success, :info, :warning, :danger 20 21 22 before_action :configure_permitted_parameters, if: :devise_controller? 23 24 protected 25 26 def configure_permitted_parameters 27 devise_parameter_sanitizer.permit(:sign_up,keys:[:email, :first_name, :last_name, :password, :password_confirmation, :first_name_kana, :last_name_kana, :postal_code, :address, :tel]) 28 end 29end 30

別途作業中でいささ見づらいところもあるかと存じますが、
お力添えいただければ幸甚です。
また、不足した情報等あればご指摘ください。

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

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

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

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

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

maisumakun

2021/11/26 13:04

反映後にサーバの再起動などはしてみましたか?
Ms.suger

2021/11/26 13:05

ご回答ありがとうございます。 数回再起動したり、cloud9の立ち上げからやり直したのですが、うまくいきませんでした…。
neko_daisuki

2021/11/27 01:26

devise_parameter_sanitizer.permit(:sign_up,keys:[:email, :first_name, :last_name, :password, :password_confirmation, :first_name_kana, :last_name_kana, :postal_code, :address, :tel]) sign up とありますが、新規登録時に該当の項目を入力して登録されたか確認していますか?
Ms.suger

2021/11/28 22:41

返事が遅くなって大変申し訳ございません。解決致しました。テーブルのカラム名とregistrationのnewフォームの記述で指定しているカラム名が違っておりました。大変お騒がせいたしました。
guest

回答1

0

自己解決

解決致しました。テーブルのカラム名とregistrationのnewフォームの記述で指定しているカラム名が違っておりました。大変お騒がせいたしました。

投稿2021/11/28 22:41

Ms.suger

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問