ユーザー登録用の誕生日選択フォーム
Railsで、scaffoldを改造して
ユーザー登録用の誕生日選択フォームを作っていますが
date_selectでTypeErrorが出て困っています。
自分でネット上を検索して、原因と思われるものに
対処してみましたが、解決しません。
同じところで詰まっている初心者は、多いかもしれません。
発生している問題・エラーメッセージ
TypeError in Users#new
no implicit conversion of Symbol into Integer
該当のソースコード
<%= form_with(model: user, local: true) do |form| %>
<% if user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul> <% user.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div>
<% end %>
<div class="field"> <%= form.label :name, "ユーザー名" %> <%= form.text_field :name %> </div> <div class="field"> <%= form.label :email, "eメールアドレス" %> <%= form.text_field :email %> </div> <div class="field"> <%= form.label :password, "パスワード" %> <%= form.password_field :password %> </div> <div class="field"> <%= form.label :birthday, "誕生日" %> <%= form.date_select :birthday, {use_two_digit_numbers: true, start_year: (Time.current.year - 100), end_year: (Time.current.year - 18), default: (Time.current.year - 45) } %> </div> <div class="actions"> <%= form.submit "送信する" %> </div> <% end %>試したこと
- date_selectは、date型に対して使わないとエラーになるそうなので
birthdayカラムの型変更を行って、date型やinteger型にしてみましたが
エラーが出たままです。
- config/locales/application.rbで
config.i18n.default_locale = :jaにしていると
date_selectでエラーが出る、という人の記事があったので
http://d.hatena.ne.jp/spitfire_tree/20101107/1289113655
それを参考に、config/locales/ja.ymlにdate:やorder:から日本語を排除したり
date_selectのオプションで、use_month_numbersや、use_two_digit_numbersを
指定してみましたが、それでもうまくいきません。
何か、的外れなことをやっているのでしょうか?
補足情報(FW/ツールのバージョンなど)
この項目は、よくわからないです。
rbenvは使っています。
あなたの回答
tips
プレビュー