48

フォームを含む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 %>

ありがとう、アレクサンドラ

4

14 に答える 14

24

Bootstrapを使用しているように見えるので、Bootstrapドキュメントのこのセクションで説明されている水平フォームレイアウトを使用するようにビューコードを調整することをお勧めします:https ://getbootstrap.com/docs/4.3/components/forms/#horizo​​ntal-形

于 2012-09-19T03:22:08.480 に答える
5
 <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>
于 2012-09-19T04:23:08.293 に答える
5

答えに対するコメントは正しいですが、要素の順序について多少のニュアンスを理解していることを前提としています。

正解は次のとおりです。

<%= 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 つのことが必要です。

  1. label 要素のクラス
  2. チェックボックス要素は、ラベル要素の前にある必要があります。

これは動作を確認すれば明らかですが、form_for の他のすべてのサンプルには常にラベルの後に入力があり、チェックボックスを変更する必要があります。

于 2013-08-02T22:20:03.913 に答える
3
  <div class="form-inline">
    <%= f.check_box :subscribed, class: 'form-control' %>
    <%= f.label :subscribed, "Subscribe" %>
  </div>
于 2016-02-15T00:31:15.567 に答える
2

私は先日同様の問題を抱えていました。私は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;
}
于 2012-09-19T03:26:35.010 に答える
2

を i18n で使用し続けるにはlabel、以下を使用できますt

<%= f.label :my_field do %>
  <%= f.check_box :my_field %> <%= t 'activerecord.attributes.my_model.my_field' %>
<% end %>
于 2014-02-10T14:15:52.947 に答える
2

チェックボックスをラベル内にラップします。

  <%= 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>
于 2016-12-06T16:50:18.957 に答える
1

基本的な Rails タグの場合:

<%= label_tag('retry-all') do %>
  Retry All
  <= check_box_tag("retry-all",false) %>
<% end %>
于 2016-11-16T04:33:19.813 に答える
0

を使用しますbootstrapか? 簡単な方法は:class => "span1"、f.submit に追加することです。私はそれがうまくいったと確信しています!

于 2012-09-19T10:35:32.103 に答える