我有一个Rails 3.2.2应用程序使用Ruby版本1.9.2。我已经通过Railscasts上的tutorial来为我的用户创建基本身份验证。未定义的方法`admin?'当试图添加管理员用户
我不需要任何复杂的东西,比如记住我或者密码重置,我希望在研究使用Devise或类似的东西之前,对实际发生的事情有一个很好的理解。
目前我的用户帐户,我可以检查用户通过使用
<% if current_user %>
登录所以我想能够做到
<% if current_user.admin? %>
如果我使用上述admin?
检查我得到以下错误:
undefined method `admin?'
我的理解是,上述检查如果管理员对于当前用户是真实的。我已经添加了一个管理员列到我的用户表,这是布尔值并设置为默认= false。
create_table :users do |t|
t.string :name
t.string :initials
t.string :email
t.string :password_digest
t.boolean :admin, :default => false
我还增加了管理员列到我的种子文件,所以我可以有一个测试管理员帐户
User.create(name: 'Danny', initials: 'DAN', email: '[email protected]', password: 'secret', admin: 'true')
正如我增加了一个管理员用户,而且我检查布尔值我认为这将是我需要做的一切。
我错过了什么吗?
我不知道我理解的问题。是不是像'current_user.admin?'行一样工作,或者你问你的解决方案是否足够?如果是后者,那么是的,我认为这就是你真正需要一个简单的管理员用户实现的全部内容。 – 2012-03-31 15:51:49
我会澄清这个问题;但是current_user.admin?导致一个'未定义的方法'admin?'' – dannymcc 2012-03-31 15:55:17
你运行过'rake db:migrate'吗?你的模型不认为它有一个布尔型的'admin'字段。 – meagar 2012-03-31 16:05:43