我有一個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