2017-04-12 12 views
2

状態でチェックボックスを無効にする方法を理解しようとしていますか?Rails 5:条件でチェックボックスを無効にする

これは、ビューからのコードの私の作品です:

<%= f.collection_check_boxes(:company_ids, @user_companies, :id, :name) do |b| %> 
<div class="col-sm-1"> 
    <%= b.check_box %> 
</div> 
    <%= b.label %><br><br> 
<% end %> 

私はこれを達成するためにどのように表示されていないcollection_check_boxes docs@user = current_user

場合、それは無効にする必要があります。私は何らかの方法があると思っていますが、今のところ見つけられない運がありません。私の素朴な思考は多分条件が何らかの見方で述べられるかもしれないということでした。 Answers hereでは、check_box_tagを使ってそれを行う方法を示しています。

私はこれを解決するためのヒントがあれば幸いです。ありがとうございました!

答えて

2

を助け

希望要素のクラスに基づいて要素を非表示にする表示プロパティを使用することができます

<%= f.collection_check_boxes(:company_ids, @user_companies, :id, :name) do |b| %> 
<div class="col-sm-1"> 
    <%= b.check_box(class: (@user == current_user) ? "disabled​" : "") %> 
    </div> 
    <%= b.label %><br><br> 
<% end %> 

<%= f.collection_check_boxes(:company_ids, @user_companies, :id, :name) do |b| %> 
    <div class="col-sm-1"> 
    <%= b.check_box disabled: @user == current_user %> 
    </div> 
    <%= b.label %><br><br> 
<% end %> 
+0

ありがとうございます。それは私が必要とするほとんどです!私はそれを試しましたが、現在のチェックボックスは、current_userだけでなく、どのユーザーでも無効になっています。どのようなアイデアを調整する必要がありますか? – matiss

+0

何らかの理由で@userは常に==をcurrent_userにしていますか? Rails.env.developmentの場合は '<%を追加してください。 %>

is current: <%= @user == current_user %>
<% end %> 'をテンプレートに追加し、それがどのようになっているのかを確認します。 hm –

+0

'current_user'は' @ user'の設定を編集しているとは分かりません。たとえば、 'Started GET"/en/users/8/edit "'しかし、 'current_user' ID = 2です。基本的には、現在のユーザーが社内のアカウントをチェックして接続したままにしないようにしたいと考えています。それ以外の場合は、他のユーザーのためにそれをチェックアウトすることができます。 – matiss

0

無効なクラスのブートストラップを使用するか、今、あなたは、チェックボックスを無効にするには、このクラスを使用することができます

.disabled{ 
    pointer-events: none; 
    cursor: not-allowed; 
} 

ように1を作成します。あなたはまた、これはあなただけのHTML disabled属性を使用したい場合、あなたはこのような何かを行うことができ

0

これを使用してチェックボックスを無効にし、divを無効にすることもできます。

<%= f.collection_check_boxes(:company_ids, @user_companies, :id, :name) do |b|%> 
<div class="col-sm-1 <%=(@user == current_user) ? "disabled​" : ""%>"> 
    <%= b.check_box(onclick:"return false;")) %> 
    </div> 
    <%= b.label %><br><br> 
<% end %> 
関連する問題