私が言えることから、私の質問は、以前にこの問題に遭遇した人にとっては非常に簡単に答えられるはずです...
レールにサインアップフォームがあり、送信ボタンがクリックされたときに正しく入力されていないフィールドが強調表示されます(関連するエラーメッセージも表示されます)。フォームには、入力フィールドとチェックボックスのみが含まれます。フォームの各部分でエラーが適切に表示されますが、ユーザーがチェックボックスをオンにせずにフォームを送信しようとすると、チェックボックスのラベルが赤で適切に強調表示されません。
チェックボックスをオフのままにしたときにチェックボックスラベルを強調表示するには、コードで何を変更する必要がありますか?
これはビューコードです:
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation, "Password confirmation" %>
<%= f.password_field :password_confirmation %>
<br>
<%= f.check_box :terms_of_service %>
<label_for="user_terms_of_service">I agree to the <%= link_to "Terms of Service", policies_path %>
</label>
<br><br>
<%= f.submit "Create my account", :class => "btn btn-large btn-primary" %>
<% end %>
また、これは、フォームが不適切に送信された後のチェックボックスのFirebugで確認できることです。問題は、class="field_with_errors"のdivがチェックボックスラベルの前に配置されていることです。
<br>
<input type="hidden" value="0" name="user[terms_of_service]">
<div class="field_with_errors">
<input id="user_terms_of_service" type="checkbox" value="1" name="user[terms_of_service]">
</div>
<label_for="user_terms_of_service">
アレクサンドラ、助けてくれてありがとう