🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

1回答

642閲覧

会員登録のformを作っています。一つのカラムに住所の全てが保存されています。原因がわかりません

MISIAN-MISIAN

総合スコア73

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

1クリップ

投稿2019/12/18 07:54

会員登録のformを作っています。
profilesというテーブルに住所、名前、電話番号を保存できるようにしています。
住所は :zip_code,:prefecture,:city,:building,:house_number,で分けてカラムに保存していますが、
phone_numberという電話番号保存するカラムに住所の全ての情報と電話番号が保存されている現状です。

コード見直してみましたが原因がわかりません。

ファイル名view/signup/step3.html.haml .wrapper-address = render "header1" .l-contents = form_for @profile, url: step3_signup_index_path, method: :post do |o| %section.l-container %h2.l-header-address お届け先住所入力 .l-mains .l-mains__container .custermer-info %h3.custermer-detail 郵便番号 %p.required 必須 %div = o.text_field :zip_code, placeholder: "例) 123-4567" .custermer-info %h3.custermer-detail 都道府県 %p.required 必須 .pref = o.collection_select :prefecture, Prefecture.all, :name, :name .custermer-info %h3.custermer-detail 市区町村 %p.required 必須 .city = o.text_field :city, class: "city-villege", placeholder: "例) 横浜市緑区" .custermer-info %h3.custermer-detail 番地 %p.required 必須 .street = o.text_field :house_number, class: "street-number", placeholder: "例) 青山1-1-1" .custermer-info %h3.custermer-detail 建物名 %p.random 任意 .building = o.text_field :building, class: "building-name", placeholder: "例) 柳ビル103" .custermer-info %h3.custermer-detail 電話番号 %p.random 任意 .phone = o.text_field :phone_number, class: "phone-number", placeholder: "例) 09012345678" = o.submit "次へ進む", class: "submit_btn_next_page" = render "sign_up_footer"
ファイル名/controllers/signup_controllers.rb def post_step3 session[:phone_number] = profile_params[:phone_number], session[:prefecture] = profile_params[:prefecture], session[:city] = profile_params[:city], session[:house_number] = profile_params[:house_number], session[:zip_code] = profile_params[:zip_code], session[:building] = profile_params[:building] @profile = Profile.new( birth_year: session[:birth_year], birth_month: session[:birth_month], birth_day: session[:birth_day], first_name: session[:first_name], first_name_kana: session[:first_name_kana], last_name: session[:last_name], last_name_kana: session[:last_name_kana], prefecture: session[:prefecture], city: session[:city], house_number: session[:house_number], zip_code: session[:zip_code], phone_number: session[:phone_number], building: session[:building] ) redirect_to step4_signup_index_path end def create # profilesテーブルへ入るデータを保存する @profile = Profile.new( user_id: @user.id, birth_year: session[:birth_year], birth_month: session[:birth_month], birth_day: session[:birth_day], first_name: session[:first_name], last_name: session[:last_name], first_name_kana: session[:first_name_kana], last_name_kana: session[:last_name_kana], phone_number: session[:phone_number], prefecture: session[:prefecture], city: session[:city], house_number: session[:house_number], zip_code: session[:zip_code], building: session[:building] ) # 保存できなければ、最初からやり直し unless @profile.save reset_session redirect_to signup_index_path return end private def profile_params params.require(:profile).permit( :birth_year, :birth_month, :birth_day, :first_name, :last_name, :first_name_kana, :last_name_kana, :phone_number, :prefecture, :city, :house_number, :zip_code, :building) end

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

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

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

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

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

winterboum

2019/12/18 08:10

不思議 postしたときのlogを見せてください
MISIAN-MISIAN

2019/12/18 08:37

住所、名前、電話番号登録した際のlogです。 log見る限り phone_number内には電話番号しか入ってないように思います Started POST "/signup/step3" for ::1 at 2019-12-18 17:34:50 +0900 Processing by SignupController#post_step3 as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"JdlWjLyEsttWphibeu8aAKjfxj1XBtMkYojosHCXAbM2fMn7cZQ124lygG84JKnMHTUhAN5hQ50NUROfLnnGdw==", "profile"=>{"zip_code"=>"123-4588", "prefecture"=>"宮城県", "city"=>"宮崎市", "house_number"=>"青山1-1-4", "building"=>"602", "phone_number"=>"09011110000"}, "commit"=>"次へ進む"}
winterboum

2019/12/18 08:54

この続きにInsert文とかないですか?
MISIAN-MISIAN

2019/12/18 09:00

step3で住所入力して step4でクレジットカードの登録をpay.jp使ってしています。 logの続きです。 Started POST "/signup/step3" for ::1 at 2019-12-18 17:34:50 +0900 Processing by SignupController#post_step3 as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"JdlWjLyEsttWphibeu8aAKjfxj1XBtMkYojosHCXAbM2fMn7cZQ124lygG84JKnMHTUhAN5hQ50NUROfLnnGdw==", "profile"=>{"zip_code"=>"123-4588", "prefecture"=>"宮城県", "city"=>"宮崎市", "house_number"=>"青山1-1-4", "building"=>"602", "phone_number"=>"09011110000"}, "commit"=>"次へ進む"} Redirected to http://localhost:3000/signup/step4 Completed 302 Found in 8ms (ActiveRecord: 0.0ms) Started GET "/signup/step4" for ::1 at 2019-12-18 17:34:50 +0900 Processing by SignupController#step4 as HTML Rendering signup/step4.html.haml within layouts/application Rendered signup/_header1.html.haml (7.1ms) Rendered signup/_sign_up_footer.html.haml (10.1ms) Rendered signup/step4.html.haml within layouts/application (68.5ms) Completed 200 OK in 168ms (Views: 163.5ms | ActiveRecord: 0.0ms)
winterboum

2019/12/18 09:03

create が呼ばれる時のlogはありますか
MISIAN-MISIAN

2019/12/18 09:14

よろしくお願いします Started POST "/signup" for ::1 at 2019-12-18 18:05:49 +0900 (0.7ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483 ↳ /Users/MISIAN/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.2.4/lib/active_record/log_subscriber.rb:98 Processing by SignupController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"pYPnu9URtuGP8CH2aQgu16RkGe2sDM7pYCn1d688iVloicsaRsHpztzkBndozQtu5a6H2K/k4EdgtKYaq/sIzg==", "payjp-token"=>"tok_40e87e84c33c1fac9595a3348ac6"} (1.1ms) BEGIN ↳ app/controllers/signup_controller.rb:95 User Exists (1.0ms) SELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'tomi@gmail.jp' LIMIT 1 ↳ app/controllers/signup_controller.rb:95 CACHE User Exists (0.0ms) SELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'tomi@gmail.jp' LIMIT 1 ↳ app/controllers/signup_controller.rb:95 User Create (1.7ms) INSERT INTO `users` (`email`, `encrypted_password`, `nickname`) VALUES ('tomi@gmail.jp', '$2a$11$77IOpcHbbYywLHG1g.Pf4uvhvMrQFtnEesr8ZWFD2Y5vBTj0A83L2', 'トミー') ↳ app/controllers/signup_controller.rb:95 (1.6ms) COMMIT ↳ app/controllers/signup_controller.rb:95 (0.2ms) BEGIN ↳ app/controllers/signup_controller.rb:121 User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 4 LIMIT 1 ↳ app/controllers/signup_controller.rb:121 Profile Create (0.4ms) INSERT INTO `profiles` (`first_name`, `last_name`, `first_name_kana`, `last_name_kana`, `birth_year`, `birth_month`, `birth_day`, `phone_number`, `prefecture`, `city`, `house_number`, `zip_code`, `building`, `user_id`, `created_at`, `updated_at`) VALUES ('隆', '富', 'タカシ', 'トミ', '2017', '4', '4', '[\"09011110000\", \"宮城県\", \"宮崎市\", \"青山1-1-4\", \"123-4588\", \"602\"]', '宮城県', '宮崎市', '青山1-1-4', '123-4588', '602', 4, '2019-12-18 09:05:49', '2019-12-18 09:05:49') ↳ app/controllers/signup_controller.rb:121 (2.3ms) COMMIT ↳ app/controllers/signup_controller.rb:121 (0.4ms) BEGIN ↳ app/controllers/signup_controller.rb:139 User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 4 LIMIT 1 ↳ app/controllers/signup_controller.rb:139 Credit Create (0.6ms) INSERT INTO `credits` (`user_id`, `customer_id`, `card_id`, `created_at`, `updated_at`) VALUES (4, 'cus_b38fd624888537af642ca428a9ba', 'car_33aca20108325745aace87bbda82', '2019-12-18 09:05:50', '2019-12-18 09:05:50') ↳ app/controllers/signup_controller.rb:139 (2.2ms) COMMIT ↳ app/controllers/signup_controller.rb:139 Redirected to http://localhost:3000/signup/done Completed 302 Found in 837ms (ActiveRecord: 38.4ms)
guest

回答1

0

どういうわけか phone_number だけ配列が渡ってますね。
どこかで session[:phone_number] におかしなことが起きた、がちょっと見当が付きません
こういう場合私がやるのは二つ

  1. ソース全体で session、 phone_number を検索して怪しげなところが無いか探す
  2. いろいろなところで session[:phone_number] の中身を確認する。

 debuger機能を使っても良いですし、私は pp で書きだしてしまいます。
pp ["##### post_step3入り口",session[:phone_number] ]
のようなのを至る所に。

投稿2019/12/18 23:26

winterboum

総合スコア23567

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

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

MISIAN-MISIAN

2019/12/19 02:18

ありがとうございます。 いろいろ試してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問