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

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

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

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

Q&A

解決済

1回答

894閲覧

Railsのlog/development.logの見方を教えてください。

koume

総合スコア458

Ruby on Rails 5

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

0グッド

0クリップ

投稿2018/09/21 04:50

Rails5.1.3でWebアプリケーション制作の勉強をしています。
createアクションで新規フォームから受け取ったデータを保存できなくて原因がわからず質問したところlogを
見てみましょう。とアドバイスを受けました。
コントローラのcreateアクションで@customer_form.saveが失敗しているようなのです。
そこでlog/development.logを表示しましたが記述されている内容がわからずどこが悪いのかもわからずに困っております。

log/development.log (出力されたログ) app/controllers/visitor/customers_controller.rb:9:in `create' Started POST "/visitor/customer" for 10.0.2.2 at 2018-09-21 13:46:16 +0900 Processing by Visitor::CustomersController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"3vPpGkNSLgir5/FOG+gv7CrWEePyDNSeUkJ7YANnVlR4n0QMH/gXI+TC/qIE/w8o0FpSkJun2YPXpXwn2cMigg==", "form"=>{"customer"=>{"email"=>"sato.ichiro@example.jp", "password"=>"[FILTERED]", "family_name"=>"佐藤", "given_name"=>"一郎", "family_name_kana"=>"サトウ", "given_name_kana"=>"イチロウ", "phones"=>{"0"=>{"number"=>"0184362632", "primary"=>"0"}, "1"=>{"number"=>"07011456699", "primary"=>"0"}}}, "inputs_home_address"=>"1", "home_address"=>{"postal_code"=>"9204278", "prefecture"=>"佐賀県", "city"=>"にかほ市", "address1"=>"開発1-2-4", "address2"=>"レイルズハイツ302号室"}}, "commit"=>"登録", "host"=>"fujiyoshi.nouen.com"} Unpermitted parameter: :phones Unpermitted parameters: :email, :password, :family_name, :given_name, :family_name_kana, :given_name_kana #<Visitor::CustomerForm:0x007f168d4a9a48 @customer=#<Customer id: nil, email: "sato.ichiro@example.jp", email_for_index: nil, family_name: "佐藤", given_name: "一郎", family_name_kana: "サトウ", given_name_kana: "イチロウ", hashed_password: "$2a$10$Sh7h65EAWu1Z/hyZ5P825u41lMzNzoSA8DvXGy278Rb...", created_at: nil, updated_at: nil>, @inputs_home_address=true, @params=<ActionController::Parameters {"customer"=><ActionController::Parameters {"email"=>"sato.ichiro@example.jp", "password"=>"password", "family_name"=>"佐藤", "given_name"=>"一郎", "family_name_kana"=>"サトウ", "given_name_kana"=>"イチロウ", "phones"=>{"0"=>{"number"=>"0184362632", "primary"=>"0"}, "1"=>{"number"=>"07011456699", "primary"=>"0"}}} permitted: false>, "inputs_home_address"=>"1", "home_address"=><ActionController::Parameters {"postal_code"=>"9204278", "prefecture"=>"佐賀県", "city"=>"にかほ市", "address1"=>"開発1-2-4", "address2"=>"レイルズハイツ302号室"} permitted: false>} permitted: false>>  (0.5ms) BEGIN Customer Exists (0.5ms) SELECT 1 AS one FROM `customers` WHERE `customers`.`email_for_index` = BINARY 'sato.ichiro@example.jp' LIMIT 1  (0.3ms) ROLLBACK Rendering visitor/customers/new.html.erb within layouts/customer Rendered visitor/customers/_phone_fields.html.erb (4.6ms) Rendered visitor/customers/_phone_fields.html.erb (1.9ms) Rendered visitor/customers/_customer_fields.html.erb (40.4ms) Rendered visitor/customers/_home_address_fields.html.erb (16.2ms) Rendered visitor/customers/_form.html.erb (66.0ms) Rendered visitor/customers/new.html.erb within layouts/customer (72.3ms) Rendered customer/shared/_header.html.erb (1.4ms) Rendered shared/_footer.html.erb (1.1ms) Completed 200 OK in 1549ms (Views: 813.7ms | ActiveRecord: 1.2ms)
コンソールに表示された内容 app/controllers/visitor/customers_controller.rb:9:in `create' Started POST "/visitor/customer" for 10.0.2.2 at 2018-09-21 13:46:16 +0900 Processing by Visitor::CustomersController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"3vPpGkNSLgir5/FOG+gv7CrWEePyDNSeUkJ7YANnVlR4n0QMH/gXI+TC/qIE/w8o0FpSkJun2YPXpXwn2cMigg==", "form"=>{"customer"=>{"email"=>"sato.ichiro@example.jp", "password"=>"[FILTERED]", "family_name"=>"佐藤", "given_name"=>"一郎", "family_name_kana"=>"サトウ", "given_name_kana"=>"イチロウ", "phones"=>{"0"=>{"number"=>"0184362632", "primary"=>"0"}, "1"=>{"number"=>"07011456699", "primary"=>"0"}}}, "inputs_home_address"=>"1", "home_address"=>{"postal_code"=>"9204278", "prefecture"=>"佐賀県", "city"=>"にかほ市", "address1"=>"開発1-2-4", "address2"=>"レイルズハイツ302号室"}}, "commit"=>"登録", "host"=>"fujiyoshi.nouen.com"} Unpermitted parameter: :phones Unpermitted parameters: :email, :password, :family_name, :given_name, :family_name_kana, :given_name_kana #<Visitor::CustomerForm:0x007f168d4a9a48 @customer=#<Customer id: nil, email: "sato.ichiro@example.jp", email_for_index: nil, family_name: "佐藤", given_name: "一郎", family_name_kana: "サトウ", given_name_kana: "イチロウ", hashed_password: "$2a$10$Sh7h65EAWu1Z/hyZ5P825u41lMzNzoSA8DvXGy278Rb...", created_at: nil, updated_at: nil>, @inputs_home_address=true, @params=<ActionController::Parameters {"customer"=><ActionController::Parameters {"email"=>"sato.ichiro@example.jp", "password"=>"password", "family_name"=>"佐藤", "given_name"=>"一郎", "family_name_kana"=>"サトウ", "given_name_kana"=>"イチロウ", "phones"=>{"0"=>{"number"=>"0184362632", "primary"=>"0"}, "1"=>{"number"=>"07011456699", "primary"=>"0"}}} permitted: false>, "inputs_home_address"=>"1", "home_address"=><ActionController::Parameters {"postal_code"=>"9204278", "prefecture"=>"佐賀県", "city"=>"にかほ市", "address1"=>"開発1-2-4", "address2"=>"レイルズハイツ302号室"} permitted: false>} permitted: false>> (0.5ms) BEGIN Customer Exists (0.5ms) SELECT 1 AS one FROM `customers` WHERE `customers`.`email_for_index` = BINARY 'sato.ichiro@example.jp' LIMIT 1 (0.3ms) ROLLBACK Rendering visitor/customers/new.html.erb within layouts/customer Rendered visitor/customers/_phone_fields.html.erb (4.6ms) Rendered visitor/customers/_phone_fields.html.erb (1.9ms) Rendered visitor/customers/_customer_fields.html.erb (40.4ms) Rendered visitor/customers/_home_address_fields.html.erb (16.2ms) Rendered visitor/customers/_form.html.erb (66.0ms) Rendered visitor/customers/new.html.erb within layouts/customer (72.3ms) Rendered customer/shared/_header.html.erb (1.4ms) Rendered shared/_footer.html.erb (1.1ms) Completed 200 OK in 1549ms (Views: 813.7ms | ActiveRecord: 1.2ms)

コードは以下になります。

customers_controller.rb class Visitor::CustomersController < Visitor::Base def new @customer_form = Visitor::CustomerForm.new end def create @customer_form = Visitor::CustomerForm.new @customer_form.assign_attributes(params[:form]) if @customer_form.save flash.notice = '顧客アカウントを新規登録しました。' render action: 'new' else flash.now.alert = '入力に誤りがあります。' render action: 'new' end end private def customer_params @params.require(:customer).permit(:email, :password, :family_name, :given_name, :family_name_kana, :given_name_kana) end end
visitor/customer_form.rb class Visitor::CustomerForm include ActiveModel::Model attr_accessor :customer, :inputs_home_address delegate :persisted?, :save, to: :customer def initialize(customer = nil) @customer = customer @customer ||= Customer.new(family_name_kana: 'カタカナ', given_name_kana: 'カタカナ') (2 - @customer.personal_phones.size).times do @customer.personal_phones.build end self.inputs_home_address = @customer.home_address.blank? @customer.build_home_address unless @customer.home_address @customer.build_history unless @customer.history_ids end def assign_attributes(params = {}) @params = params self.inputs_home_address = params[:inputs_home_address] == '1' customer.assign_attributes(customer_params) phones = phone_params(:customer).fetch(:phones) customer.personal_phones.size.times do |index| attributes = phones[index.to_s] if attributes && attributes[:number].present? customer.personal_phones[index].assign_attributes(attributes) else customer.personal_phones[index].mark_for_destruction end end if inputs_home_address customer.home_address.assign_attributes(home_address_params) else customer.home_address.mark_for_destruction end end private def phone_params(record_name) @params.require(record_name).permit(phones: [ :number, :primary ]) end def customer_params @params.require(:customer).permit(:email, :password, :family_name, :given_name, :family_name_kana, :given_name_kana) end def home_address_params @params.require(:home_address).permit(:postal_code, :prefecture, :city, :address1, :address2 ) end end

どなたか教えていただけないでしょうか?宜しくお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

フォームに入力した値が登録されないことから始原因の追跡が始まったのですが
app/controllers/concerns/error_handlers.rbのコード記述ミスが原因のようです。
extend ActiveSupport::Concernをextend ActiveSupport::Concermと入力ミスをしていて
includedメソッドが利用できなくmodels/concernsのフィルのincludedメソッドが使えなかったのが原因のようでした。全く見当違いの所を長々と悩んでいました。

投稿2018/09/23 04:01

koume

総合スコア458

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問