現象
Rubyもあやしい僕ですが、最近Railsを触ってます。
そんな中でf.select
を使用してclass属性を設定しようとしたところ何故か設定できませんでした。
<%= f.select :object, :property, :class => 'foobar' %>
<select id="foo_object">
:
日本語のRailsドキュメントを読んでも問題なさそうだし、何がいけないんだろう…。
修正
ググッてみたところ、以下のようにしろということでした。
# f.select 第3引数に {} を追加
<%= f.select :object, :property, {}, :class => 'foobar' %>
すると
<select id="foo_object" class="foobar">
:
ちゃんと出力された!!
{}
が気持ち悪ーい!!
原因
原因は先ほどのRailsドキュメントのソースコードへのリンクを見ればわかりました。
メソッドの定義が以下のようになっていました。
def select(method, choices = nil, options = {}, html_options = {}, &block)
:
つまり、options
をスキップして、html_options
に設定する必要があったみたいです。なんだこれ…。