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

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

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

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

0回答

1834閲覧

作成中のアプリで新規登録時の生年月日が画面上には表示されるがDBに保存されません

uzume

総合スコア4

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/03/25 10:23

編集2020/03/25 10:32

前提・実現したいこと

rails,ruby,haml,sass,javascript,jqueryでフリマアプリを作成しています。
新規登録で生年月日を入力する欄で今まではtext_fieldで生年月日を直接入力する方法を行っていましたが、
閏年も選択できるプルダウンに変更しようと思い挑戦したところ、画面上には表示出来るところまでは
出来たのですが、その選択した生年月日がDBに保存されない状況になっています。
text_fieldの時のように、しっかりDBに保存される状態を実現したいと思っています。

発生している問題・エラーメッセージ

新規登録画面の生年月日のプルダウンは画面には表示され選択出来るがDBに保存されない問題が発生しています。

該当のソースコード

haml

1.user-register 2 .header51 3 = image_tag asset_path("logo.png"), size: "200x50", alt: "test" 4 5 .main 6 .title 7 .title__font 8 会員情報入力 9 10 = form_for(@user, url: user_registration_path) do |f| 11 = render "devise/shared/error_messages", resource: @user 12 13 .name-information 14 .name-information__item 15 .name-information__item__nicname 16 = f.label :nickname,"ニックネーム" 17 .name-information__item__required 18 必須 19 .name-information__name 20 = f.text_field :nickname,size:26 21 .email 22 .email__information 23 .email__information__address 24 = f.label :email,"メールアドレス" 25 .email__information__required 26 必須 27 .email__information 28 = f.email_field :email, autofocus: true, autocomplete: "email",size:26 29 30 .password 31 .password__item 32 .password__item__pass 33 = f.label :password,"パスワード" 34 .password__item__note 35 - if @minimum_password_length 36 (#{@minimum_password_length} 文字以上必要です) 37 .password__item__required 38 必須 39 .password__input 40 .password__description 41 = f.password_field :password, autocomplete: "new-password", size:26 42 43 .re-enter 44 .re-enter__item 45 .re-enter__item__pass 46 = f.label :password_confirmation,"確認用パスワード " 47 .re-enter__item__repuired 48 必須 49 .re-enter__itempass 50 = f.password_field :password_confirmation, autocomplete: "new-password",size:26 51 52 .Identification 53 .Identification__mozi 54 本人確認 55 .Identification__description 56 安心・安全にご利用いただくために、お客さまの本人情報の登録にご協力ください。他のお客さまに公開されることはありません。 57 58 .Identification-name 59 .Identification-name__box 60 .Identification-name__box__mozi 61 .Identification-name__box__mozi__oo 62 = f.label :family_name,"お名前(姓)" 63 .Identification-name__box__mozi__tt 64 必須 65 .Identification-name__box__nameinput 66 = f.text_field :family_name, size:15 67 .Identification-name__boxs 68 .Identification-name__boxs__a1 69 .Identification-name__boxs__a1__nn 70 = f.label :first_name,"お名前(名)" 71 .Identification-name__boxs__a1__mm 72 必須 73 .Identification-name__boxs__a2 74 = f.text_field :first_name, size:15 75 76 .Identification-name-kana 77 .Identification-name-kana__box 78 .Identification-name-kana__box__mozi 79 .Identification-name-kana__box__mozi__kiss 80 = f.label :family_name_kana,"お名前(セイ)" 81 .Identification-name-kana__box__mozi__pen 82 必須 83 .Identification-name-kana__box__hissu 84 = f.text_field :family_name_kana, size:15 85 .Identification-name-kana__boxs 86 .Identification-name-kana__boxs__b1 87 .Identification-name-kana__boxs__b1__pc 88 = f.label :first_name_kana,"お名前(メイ)" 89 .Identification-name-kana__boxs__b1__ice 90 必須 91 .Identification-name-kana__boxs__b2 92 = f.text_field :first_name_kana, size:15 93 94 .Birthday 95 .Birthday__box1 96 .Birthday__box1__mozi 97 生年月日 98 .Birthday__box1__hissu 99 必須 100 .Birthday__box2 101 .Birthday__box2__a 102 %select#birth_year 103 %option{:value => "0"} ---- 104105 %select#birth_month 106 %option{:value => "0"} -- 107108 %select#birth_day 109 %option{:value => "0"} -- 110111 112 113 -# .Birthday__box2__a__1po 114 -# = f.text_field :birth_year, size:8, maxlength:4 115 -# .Birthday__box2__a__year 116 -# = f.label :birth_year,"年" 117 -# .Birthday__box2__b 118 -# .Birthday__box2__b__2po 119 -# = f.text_field :birth_month, size:7, maxlength:2 120 -# .Birthday__box2__b__month 121 -# = f.label :birth_month,"月" 122 -# .Birthday__box2__c 123 -# .Birthday__box2__c__3po 124 -# = f.text_field :birth_day, size:7, maxlength:2 125 -# .Birthday__box2__c__day 126 -# = f.label :birth_day,"日" 127 128 .Birthday__box3 129 ※ 本人情報は正しく入力してください。会員登録後、修正するにはお時間を頂く場合があります。 130 131 .terms-of-service 132 .terms-of-service__mozi 133 「次へ進む」のボタンを押すことにより、利用規約に 134       同意したものとみなします 135 .terms-of-service__btm 136 %input#submit_button1{:name => "submit", :type => "submit", :value => "次へ進む"}/ 137 .terms-of-service__register 138 本人情報の登録について> 139 .terms-of-service__english 140 This site is protected by reCAPTCHA and the Google PrivacyPolicy and Terms of Service apply. 141 142 .footer51 143 .title 144 .title__one 145 プライバシーポリシー 146 .title__tow 147 メルカリ利用規約 148 .title__three 149 特定商取引に関する表記 150 .item51 151 = image_tag asset_path("logo-white.png"), size: "200x60", alt: "test" 152 .logo51 153 © FURIMA, Inc. 154

javascript

1$(function() { 2 var time = new Date(); 3 var year = time.getFullYear(); 4 var month = time.getMonth() + 1; 5 var day = time.getDate(); 6 7 var selected_year = document.getElementById("birth_year").value; 8 var selected_month = document.getElementById("birth_month").value; 9 10 for (var i = year; i >= 1 ; i--) { 11 $('#birth_year').append('<option value="' + i + '">' + i + '</option>'); 12 } 13 14 for (var j = 1; j <= 12; j++) { 15 $('#birth_month').append('<option value="' + j + '">' + j + '</option>'); 16 } 17 18 for (var k = 1; k <= 31; k++) { 19 $('#birth_day').append('<option value="' + k + '">' + k + '</option>'); 20 } 21 22 $('#birth_year').change(function() { 23 selected_year = $('#birth_year').val(); 24 25 var last_month = 12; 26 if (selected_year == year) { 27 last_month = month; 28 } 29 $('#birth_month').children('option').remove(); 30 $('#birth_month').append('<option value="' + 0 + '">--</option>'); 31 for (var n = 1; n <= last_month; n++) { 32 $('#birth_month').append('<option value="' + n + '">' + n + '</option>'); 33 } 34 }); 35 36 $('#birth_year,#birth_month').change(function() { 37 selected_year = $('#birth_year').val(); 38 selected_month = $('#birth_month').val(); 39 40 if (selected_year == year && selected_month == month ) { 41 var last_day = day; 42 }else{ 43 if (selected_month == 2) { 44 if((Math.floor(selected_year%4 == 0)) && (Math.floor(selected_year%100 != 0)) || (Math.floor(selected_year%400 == 0))){ 45 last_day = 29; 46 }else{ 47 last_day = 28; 48 } 49 50 }else if(selected_month == 4 || selected_month == 6 || selected_month == 9 || selected_month == 11 ){ 51 last_day = 30; 52 53 }else{ 54 last_day = 31; 55 } 56 } 57 58 $('#birth_day').children('option').remove(); 59 $('#birth_day').append('<option value="' + 0 + '">--</option>'); 60 for (var m = 1; m <= last_day; m++) { 61 $('#birth_day').append('<option value="' + m + '">' + m + '</option>'); 62 } 63 }); 64});

試したこと

・仮説1
hamlのselectの記載がおかしいのではないか
・実行
selectの記載をfrom_forの記述に変更
・結果
変更前と変わらずDBに保存されない

・仮説2
スペルミスがあるのではないか
・実行
全てのスペルの確認
・結果
問題なし

補足情報(FW/ツールのバージョンなど)

保存先のテーブルのカラム名は月がbirth_year月がbirth_month日がbirth_dayです。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問