我有一个模型(资源)作为工作。它有自己的crud操作。作为员工和普通用户,作业索引的视图和路径不同。对于员工,只应该看到该特定员工的工作,而对于普通用户,应该看到所有工作。如何设计路线和控制器。
答案 0 :(得分:1)
我希望您的索引控制器能够根据会话/ cookie哈希调用模型上的不同过滤器。
例如:
# models/job.rb
def my_jobs_only(some_variable)
if some_variable.empty?
Job.all
elsif params[:my_job_area]
Job.find(my_job_area)
# etc...
end
end
在您的控制器中:
def index
if session[:user_id]
user = Users.find(user_id)
job = Job.find(user)
Job.my_filter job
else
Job.all
end
显然,你可以做很多改进,但这应该让你前进。这样做的诀窍是,路由最适合指向控制器,控制器非常适合询问数据模型。
答案 1 :(得分:1)
基于范围的不同控制器,命名空间为员工提供JobsController。
class Employee::JobsController < ApplicationController
before_filter :authenticate_employee!
layout "employee"
def index
@jobs = Job.all
....
end
end
class UserController < ApplicationController
before_filter :authenticate_user!
end
class JobController < UserController
def index
@jobs = current_user.jobs
...
end
end
路由文件
resources :jobs
namespace :employee do
resources :jobs
....
end