Railsフォームを含むビューのチェックボックスと同じ行にチェックボックスのラベルを保持するにはどうすればよいですか?
現在、ラベルは次の行にあります。
<div class="span6 offset3">
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :name %>
<%= f.text_field :name %>
<br>
<%= f.check_box :terms_of_service %>
<%= f.label :terms_of_service, "I agree to the #{link_to 'Terms of Service', policies_path}.".html_safe %>
<br><br>
<%= f.submit "Create my account", :class => "btn btn-large btn-primary" %>
<% end %>
ありがとう、アレクサンドラ
Bootstrapを使用しているように見えるため、ビューコードを調整して、Bootstrap docs: https:// getbootstrap。 com/docs/4.3/components/forms /#horizontal-form
bootstrap wiki によると、
<label class="checkbox">
<input type="checkbox"> Check me out
</label>
これはRuby on Railsは
<%= f.label :terms_of_service do %>
<%= f.check_box :terms_of_service %>
I agree to the <%= link_to 'Terms of Service', policies_path %>.
<% end %>
<br>
<%= f.check_box :terms_of_service, :style => "float:left;" %>
<%= f.label :terms_of_service, "I agree to the #{link_to 'Terms of Service', policies_path}.".html_safe, :style => "float:left;" %>
<br>
答えに対するコメントは正しいですが、要素の順序について理解するためのニュアンスを前提としています。
正解は次のとおりです。
<%= f.check_box :terms_of_service %>
<%= f.label :terms_of_service, "I agree to the #{link_to 'Terms of Service', policies_path}.".html_safe
, {class: "checkbox inline"} %>
次の2つが必要です。
これが動作しているのがわかると、これは明らかですが、form_forの他のすべてのサンプルには常にラベルの後に入力があり、チェックボックスのためにそれを変更する必要があります。
<div class="form-inline">
<%= f.check_box :subscribed, class: 'form-control' %>
<%= f.label :subscribed, "Subscribe" %>
</div>
label
を使用して国際化を維持するには、t
を使用できます。
<%= f.label :my_field do %>
<%= f.check_box :my_field %> <%= t 'activerecord.attributes.my_model.my_field' %>
<% end %>
先日、Twitterブートストラップを使用して同様の問題が発生しましたが、simple_form gemも使用しています。私はCSSでその詳細を修正する必要がありました、ここに私のコードがあります:
<%=f.input :status, :label => "Disponible?", :as => :boolean, :label_html => { :class => "pull-left dispo" }%>
css:
.dispo{
margin-right:10%;
}
pull-left{
float:left;
}
基本的なRailsタグの場合:
<%= label_tag('retry-all') do %>
Retry All
<= check_box_tag("retry-all",false) %>
<% end %>
ラベル内にチェックボックスをラップします。
<%= f.label :terms_of_service do %>
<%= f.check_box :terms_of_service %>
I agree to the <%= link_to 'Terms of Service', policies_path %>
<% end %>
入力フィールドがラベルでラップされている場合、実際にはラベルのfor属性は必要ありません。ラベルは、クリック時にチェックボックスをアクティブにします。さらに簡単に:
<label>
<%= f.check_box :terms_of_service %>
I agree to the <%= link_to 'Terms of Service', policies_path %>
</label>
一般的にRailsの場合、これを回避する方法があります(human_attribute_nameはi18nで動作します)。
<label>
<%= f.check_box :terms_of_service %>
<%= User.human_attribute_name(:terms_of_service) %>
</label>
Bootstrap 4、HAMLで
.form-check
=f.label :decision_maker, class: 'form-check-label' do
=f.check_box :decision_maker, class: 'form-check-input'
Decision Maker
または
.form-group
=f.check_box :decision_maker
=f.label :decision_maker
https://getbootstrap.com/docs/4.3/components/forms/#default-stacked
<div class="form-check"> <label class="form-check-label"> <input class="form-check-input" type="checkbox" value=""> Option one is this and that—be sure to include why it's great </label> </div>
最初の方法はより正しい方法ですが、2番目の方法は実質的に同一で乾燥しているように見えます。
On Rails 5.2、Ruby 2.4 and bootstrap 4.1.1:
<%= form.check_box :terms_of_service, label: "your custom label...."%>
インラインチェックボックスを指定せずに私のために働いた。
bootstrap
を使用しますか?簡単な方法は、f.submitに:class => "span1"
を追加することです。私はそれが働いたと確信しています!
<div class="row">
<div class="col-sm-1">
<%= f.label :paid? %>
</div>
<div class="col-sm-1">
<%= f.check_box :paid, value: 'false' %>
</div>
</div>