rails初心者です。
なかなか解決できないため質問させてください。
deviseを用いてユーザー登録を実装していたところ、最初のうちは保存されていたのですがいつの間にか保存されなくなっていました。
郵便番号を入れたら住所が出てくるような実装を行なっていてajaxzip3というのを試していたのですが、ajaxzip3では値がうまく保存されず、一旦諦めてコードを元に戻したところ、普通に入力しても保存がされなくなっていました。
application_controller.rbやuser.rbの記述なども何度も確認したのですが解決できず質問させて頂きました。
■config>routes.rb
Rails.application.routes.draw do devise_for :users root to: 'stocks#index' resources :stocks end
■app>views>devise>registrations>new.html.erb
<form> <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> <%= render "devise/shared/error_messages", resource: resource %> <div class="mb-3"> <%= f.label :ユーザー名 %><br> <%= f.text_field :user_name, class: "form-control"%> </div> <div class="field"> <%= f.label :郵便番号 %><br> <%= f.text_field :postal_code, class: "form-control"%> </div> <div class="field"> <%= f.label :都道府県 %><br> <%= f.text_field :prefecture_code, class: "form-control" %> </div> <div class="field"> <%= f.label :市区町村 %><br> <%= f.text_field :city, class: "form-control" %> <div class="field"> <%= f.label :電話番号 %><br> <%= f.text_field :phone_number, class: "form-control" %> <div class="field"> <%= f.label :email %><br /> <%= f.email_field :email, autofocus: true, autocomplete: "email", class: "form-control" %> </div> <div class="field"> <%= f.label :password %> <% if @minimum_password_length %> <em>(<%= @minimum_password_length %> characters minimum)</em> <% end %><br /> <%= f.password_field :password, autocomplete: "new-password", class: "form-control" %> </div> <div class="field"> <%= f.label :password_confirmation %><br /> <%= f.password_field :password_confirmation, autocomplete: "new-password", class: "form-control" %> </div> <div class="actions"> <%= f.submit "Sign up", class: "btn btn-primary" %> </div> <% end %> </form> <%= render "devise/shared/links" %>
■app>controllers>application_controller.rb
class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [ :user_name, :postal_code, :prefecture_code, :city, :phone_number]) end end
■app> models >user.rb
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :stocks validates :postal_code, presence: true validates :prefecture_code, presence: true validates :city, presence: true validates :phone_number, presence: true end
また、フォームを送信するとターミナルではこのように表示されています。
Started GET "/users/sign_up?authenticity_token=W4W8eMjg%2BwQGx2BiiWSlKffgYRnC8348n4WRFoPdRfRBvdOax2h7M3gUXIzJtAIKnbgiVnnqb1GdeNfM6ixlPQ%3D%3D&user%5Buser_name%5D=%E3%83%86%E3%82%B9%E3%83%88&user%5Bpostal_code%5D=9999999&user%5Bprefecture_code%5D=%E9%B9%BF%E5%85%90%E5%B3%B6%E7%9C%8C&user%5Bcity%5D=%E9%B9%BF%E5%85%90%E5%B3%B6%E5%B8%82&user%5Bphone_number%5D=000000000&user%5Bemail%5D=aaa%40aaa.com&user%5Bpassword%5D=[FILTERED]&user%5Bpassword_confirmation%5D=[FILTERED]&commit=Sign+up" for ::1 at 2021-09-09 20:43:48 +0900 Processing by Devise::RegistrationsController#new as HTML Parameters: {"authenticity_token"=>"W4W8eMjg+wQGx2BiiWSlKffgYRnC8348n4WRFoPdRfRBvdOax2h7M3gUXIzJtAIKnbgiVnnqb1GdeNfM6ixlPQ==", "user"=>{"user_name"=>"テスト", "postal_code"=>"9999999", "prefecture_code"=>"鹿児島県", "city"=>"鹿児島市", "phone_number"=>"000000000", "email"=>"aaa@aaa.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"} Rendering devise/registrations/new.html.erb within layouts/application Rendered devise/shared/_error_messages.html.erb (Duration: 0.3ms | Allocations: 15) Rendered devise/shared/_links.html.erb (Duration: 0.7ms | Allocations: 79) Rendered devise/registrations/new.html.erb within layouts/application (Duration: 20.1ms | Allocations: 2271) [Webpacker] Everything's up-to-date. Nothing to do Completed 200 OK in 74ms (Views: 60.4ms | ActiveRecord: 0.0ms | Allocations: 7716)
初心者ですので初歩的な質問なのかもしれませんが、ご教示いただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。