在我的应用程序中有一个具有管理员角色的用户模型。我希望管理员能够创建新的管理员,所以在用户/编辑页面上,我希望创建一个管理员可见的复选框,当检查将用户转换为管理员时。我正在使用的代码在这里。除了复选框位之外,一切都有效,这就是我要问的原因。我是 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
我究竟做错了什么?我提交时它不会切换任何东西。
谢谢!
萨沙