私のアプリには、管理者ロールを持つユーザー モデルがあります。管理者が新しい管理者を作成できるようにしたいので、ユーザー/編集ページで、チェックするとユーザーが管理者になる管理者に表示されるチェックボックスを作成したいと考えています。私が使用しているコードはこちらです。チェックボックスのビット以外はすべて機能するため、質問しています。私はRailsを初めて使用し、管理チェックボックス情報をスクレイピングして、それを使用して管理属性(セキュリティ上の理由からattr_protected)を変更する方法を理解できません。
私の編集フォーム
<div class="row">
<div class="span6 offset3">
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages' %>
<%= 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, "Confirmation" %>
<%= f.password_field :password_confirmation %>
<% if signed_in? %>
<% if current_user.admin? %>
<h3> Click to Switch On/Off Admin
<%= check_box_tag(:admin) %></h3>
<% end %>
<% end %>
<%= f.submit @string, class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>
私の user.rb ファイルの関連行
before_save :toggle_admin
private
def toggle_admin
if self.admin == true
self.toggle!(:admin)
end
end
私は何を間違っていますか?送信しても何も切り替わりません。
ありがとう!
サーシャ