実現したいこと
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
別途作業中でいささ見づらいところもあるかと存じますが、
お力添えいただければ幸甚です。
また、不足した情報等あればご指摘ください。
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 とありますが、新規登録時に該当の項目を入力して登録されたか確認していますか?
返事が遅くなって大変申し訳ございません。解決致しました。テーブルのカラム名とregistrationのnewフォームの記述で指定しているカラム名が違っておりました。大変お騒がせいたしました。
回答1件
あなたの回答
tips
プレビュー