如何在 ROR 中使用设计添加管理员
how to add admin with devise in ROR
我正在使用设计 gem 我想创建管理员
railsg迁移add_admin_to_user
在数据库中
def change
add_column :users, :admin , :boolean , {default: false}
end
定义用户
def admin?
user=User.create(email: "info@presale.ca",password: "12345678")
user.admin=true
user
user.save
admin
end
end
在索引页
<% if current_user && current_user.admin? %>
<% end %>
def 用户有问题如何解决?
有一些不理想的地方:
你的属性 User.admin
是一个布尔值,这意味着无需在 User.rb (模型)中添加方法,你将能够执行 User.admin?
并且它return 是真还是假。
在检查当前用户是否为管理员的方法中创建管理员用户不是一个好主意。最快的方法是进入 rails 控制台(通过您的终端)并将用户更新为 admin = true,例如User.last.update_attribute(:admin, true)
.
因为您的 User 模型上已经有一个布尔值 :admin 属性,所以有一个开箱即用的默认 admin?
方法。如果你调用 User.find(1).admin?
之类的东西,它会根据你在数据库中的值 return true 或 false - 所以你可能不想覆盖它。
在您的用户模型中定义一个新方法来分配 admin 属性。
def make_admin!
self.update_attribute(:admin, true)
end
现在您可以在您的控制器中调用 User.find(1).make_admin!
,或在 rails 控制台中,或任何您有 User 实例的地方。
然后您可以将视图中的代码更改为:
<% if user_signed_in? && current_user.admin? %>
# Show Admin Stuff
<% end %>
我正在使用设计 gem 我想创建管理员
railsg迁移add_admin_to_user
在数据库中
def change
add_column :users, :admin , :boolean , {default: false}
end
定义用户
def admin?
user=User.create(email: "info@presale.ca",password: "12345678")
user.admin=true
user
user.save
admin
end
end
在索引页
<% if current_user && current_user.admin? %>
<% end %>
def 用户有问题如何解决?
有一些不理想的地方:
你的属性
User.admin
是一个布尔值,这意味着无需在 User.rb (模型)中添加方法,你将能够执行User.admin?
并且它return 是真还是假。在检查当前用户是否为管理员的方法中创建管理员用户不是一个好主意。最快的方法是进入 rails 控制台(通过您的终端)并将用户更新为 admin = true,例如
User.last.update_attribute(:admin, true)
.
因为您的 User 模型上已经有一个布尔值 :admin 属性,所以有一个开箱即用的默认 admin?
方法。如果你调用 User.find(1).admin?
之类的东西,它会根据你在数据库中的值 return true 或 false - 所以你可能不想覆盖它。
在您的用户模型中定义一个新方法来分配 admin 属性。
def make_admin!
self.update_attribute(:admin, true)
end
现在您可以在您的控制器中调用 User.find(1).make_admin!
,或在 rails 控制台中,或任何您有 User 实例的地方。
然后您可以将视图中的代码更改为:
<% if user_signed_in? && current_user.admin? %>
# Show Admin Stuff
<% end %>