うまとま君の技術めも

2015年新卒入社した社畜の勉強内容などなど

Railsでf.selectにclassが設定できない時

環境

f.select

<%= form_for @user do |f| %>
  ...
  <%= f.select :job, { engineer: "Engineer", ... }, class: "myclass" %>
  ...
<% end %>

ここでセレクトタグに.myclassが設定されていることが期待されるが、 実際に生成されるHTMLは下記のようになる。

<select id="user_job" name="user[job]">
  <option selected="selected" value="engineer">Engineer</option>
  ...
</select>

classが設定できない時の対処法

<%= form_for @user do |f| %>
  ...
  <%= f.select :job, { engineer: "Engineer", ... }, {}, { class: "myclass" } %>
  ...
<% end %>

これでclassが設定されたHTMLが出力されるはずです。

<select class="myclass" id="user_job" name="user[job]">
  <option selected="selected" value="engineer">Engineer</option>
  ...
</select>

参考