2016-10-20 4 views
0

私はRailsアプリケーションにBootstrap 3 gemを使用しています。ブートストラップについての一つの良い点は、.form-controlクラスを通してRailsフォームの外観を改善するために使用できることです。Railsフォームでは、ブートストラップ3クラスが選択ドロップダウン用にレンダリングされていません

私は2つの入力を持っています:text_fieldとselect_fieldです。 Bootstrap 3 CSS guideに基づいて、私は.form-controlクラスを使用してスタイルを適用することができるはずです。

<div class="form-group"> 
    <div class="field"> 
    <%= f.label :title %><br> 
    <%= f.text_field :title, class: "form-control" %> 
    </div> 
    </div> 

    <div class="form-group"> 
    <div><%= f.label :subdomain %><br /> 
    <%= f.select :subdomain, ['ExampleOne.com', `ExampleTwo.com`], class: "form-control" %></div> 
    </div> 
<% end %> 

をしかし、この場合には、私がしたいと思うように第1のtext_fieldの入力は罰金レンダリングするが、選択は変わりません。

<select class="form-control"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
    <option>5</option> 
</select> 

私はこれを設定していますどのように差が表示されない:静的、非Railsのフォームでは、これは次のように、マニュアルに従って、書き込まれます。あなたはエラーを見つけることができますか?

答えて

-1

なぜ、ステップバックを取り、入力フィールドをhtmlでコード化しないと、私はそれがうまくいくと思います。

<div class="form-group"> 
    <div><%= f.label :subdomain %></div><br /> 
     <select class="form-control" name="subdomain"> 
     <%@some_variable.each do |k|%> #instance variable, Directly Model or some array defined in view or controller. 
     <option value="<%=k.id%>"><%=k.some_field_name%></option> 
     <%end%>   
    </div> 

dbのオプションがない場合は、ビューまたはコントローラーで配列を定義してループしてループする必要があります。

1
以下のようなものにあなたのselectタグを変更し

<%= f.select(:subdomain, ['ExampleOne.com', `ExampleTwo.com`], {}, { :class => 'form-control' }) %> 

それはここに4番目の引数でclassのようなHTMLオプションを受け入れているため、第3引数は、ここで{ include_blank: true }ようoptionsのために使用されているoptionsハッシュのためです。レールdocumentationから

は、それはあなたがそうあなたのclasshtml_optionsためである第四引数にする必要がありますfでこれを適用しているので、あなたはすでにobjectを持っている。ここ

select(object, method, choices = nil, options = {}, html_options = {}, &block) 

の形式にする必要があります。

+0

@darkginger、それはあなたの問題を解決しましたか? – Sajan

関連する問題