我有一個Job
模型,belongs_to
三個用戶(客戶,員工和qa)。創建工作時,客戶被設置爲current_user
,但員工和qa用戶從無人認領的工作池中選擇工作。這些路線的最佳做法是什麼?
我現在執行此操作的方式如下:match 'jobs/:id/assign/:type/:user_id' => 'jobs#assign'
與assign
方法與params[:type]
上的case語句。因此,例如,jobs/1/assign/qa/1
將用戶1分配給作業1的qa。
這可行,但似乎馬虎,我想用更乾淨的東西替換它。這種情況是否有共同的慣例?
編輯:用戶可以同時擁有員工和qa角色。這就是讓我感覺如此複雜的路線。
class User < ActiveRecord::Base
has_many :submitted_jobs, :class_name => 'Job', :foreign_key => 'customer_id'
has_many :assigned_jobs, :class_name => 'Job', :foreign_key => 'employee_id'
has_many :reviewed_jobs, :class_name => 'Job', :foreign_key => 'qa_id'
class Job < ActiveRecord::Base
belongs_to :customer, :class_name => 'User', :foreign_key => 'customer_id'
belongs_to :employee, :class_name => 'User', :foreign_key => 'employee_id'
belongs_to :qa, :class_name => 'User', :foreign_key => 'qa_id'
我有一種感覺,有一個更好的方法。這正是我正在尋找的。謝謝! – Luke 2011-05-17 05:55:48