LoginSignup
3
0

More than 5 years have passed since last update.

Rails6 のちょい足しな新機能を試す2(select タグ編)

Posted at

はじめに

Rails 6 に追加されそうな新機能を試す第2段。 select タグの prompt を指定するときのちょい足し機能です。
記載時点では、Rails は 6.0.0.beta3 です。 gem install rails --prerelease でインストールできます。

$  rails --version
Rails 6.0.0.beta3u``

単純なCRUD機能をscaffold で作る

新機能を試すために、scaffold で単純なCRUD機能を作ってみます。

$ rails new sandbox_6_0_0b3
$ cd sandbox_6_0_0b3
$ rails g scaffold User name

従来の機能

これまでは、 prompt を設定した required な select の prompt を disabled にすることができませんでした。

app/views/users/_form.html.erb
<%= form_with(model: user, local: true) do |form| %>
  ...
   <div class="field">
    <%= form.label :favorite_language %>
    <%= form.select :favorite_language, ["Ruby", "Python", "JavaScript"], { prompt: "Choose Favorite Language" }, {required: true} %>
  </div>
  ...

prompt で選択した文字列を選ぶことができてしまいます。
select_5.png

新機能

Rails 6 では、prompt を disabled にすることができます。

app/views/users/_form.html.erb
<%= form_with(model: user, local: true) do |form| %>
  ...
  <div class="field">
    <%= form.label :favorite_language %>
    <%= form.select :favorite_language, ["Ruby", "Python", "JavaScript"], { selected: "", disabled: "", prompt: "Choose Favorite Language" }, {required: true}%>
  </div>
  ...

prompt で選択した文字列を選ぶことができません。
select_6.png

参考情報

その他

あくまで、Viewの機能として試しているだけなので、 model に favorite_language の属性がないというツッコミは勘弁願います。

3
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
3
0