我有兩種類型的用戶:經理和員工。我爲他們兩個使用一個用戶控制器。定義用戶類型,單表繼承(?)
我所做的就是添加:MANAGER_ID到用戶表,並把用戶模型如下:
class User < ActiveRecord::Base
has_many :employees, :class_name => 'User', :foreign_key => :manager_id
belongs_to :manager, :class_name => 'User'
聽起來很簡單。
但是現在我想定義用戶類型。如果用戶有經理,他是一名僱員。如果用戶沒有經理,他是經理。
什麼我需要添加到模型,所以我引用用戶類型,我的觀點像這樣:
<% if current_user.manager? %>
You are a manager.
<% else %>
You are not a manager.
<% end %>
我試圖在user.rb模型中定義的用戶類型,但我發現一個「未定義的方法」經理?對於零:NilClass」錯誤:
def manager?
manager_id.nil?
end
def employee?
!manager?
end
啊哈!這工作。這很有道理。謝謝。 – cdotfeli 2011-12-20 23:27:42