0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ドロップダウンでboolean型の値を扱う方法

Posted at

基本的にboolean型の値をドロップダウンで表示することはないと思うんですが、仕事でそうしないといけない状況があり、手こずったので書き留めておきます。
したいこと:”10日”と”1日”のドロップダウンを作る。10日を選んだ時はtrue、1日を選んだ時はfalseをデータベースに送信する。

まずはerbファイル。最初はrequired: trueを書いていたのだけど、うまく動作せずinclude_blankに変更。

qiita.html.erb
<div class="form-group">
  <%= f.label :pay_day %>
  <%= f.select :pay_day, payment_day, { include_blank: false }, class: "form-control" %>
</div>

modelファイルにメソッドを追加。trueとfalseはkeyとして使えないのでinvertを使って逆に書くことに。これをしないとrubocopエラーが、、、

qiita.rb
PAYMENTDAY = { "10日": "true", "1日": "false" }.invert.freeze

erbに記載していたpayment_dayメソッドをapplication_helperに追加。
select_fieldは配列で値を受け取る必要があるため、keyとvalueをループさせmapメソッドに入れる。

application_helper.rb
def payment_day
    QIITA::PAYMENTDAY.map { |k, v| [v, k] }
  end
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?