我有一个模型(资源)作为工作。它有自己的粗暴行动。当作为员工和普通用户查看时,查看和路由对于作业索引是不同的。对于员工而言,只应该看到该特定员工的工作,而对于普通用户应该看到所有工作。如何设计路线和控制器。Rails中相同资源的不同路线
0
A
回答
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
routes文件
resources :jobs
namespace :employee do
resources :jobs
....
end
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. 多个资源中的相同路径
- 2. RAML不同queryParameters,相同的资源
- 3. 不同的WebDav资源路径使用不同的客户端时相同的资源
- 4. 不同的路线相同的组件
- 5. 路线具有相同的资源多次
- 6. Rails的航线资源 - 所有路线
- 7. Rails中的相同资源的不同索引的一个很好的方法?
- 8. 同步线程在同一时间读取不同的资源
- 9. Rails的:路线佣工嵌套资源
- 10. Rails的路线产生嵌套资源
- 11. Rails的路线嵌套资源
- 12. Rails的嵌套路线奇异资源
- 13. Rails查询返回基于关联资源的不同资源
- 14. Rails的路线,有嵌套的资源没有嵌套资源
- 15. Laravel路线:路线::资源
- 16. Ruby on Rails:路线和资源
- 17. Ruby on Rails路线:收集资源
- 18. Rails相同的路线(POST /用户)为不同的控制器操作[设计]
- 19. Rails资源路径
- 20. Rails的路线 - 嵌套单一的资源用:ID,而不是:资源名_ID
- 21. 更新线路用相同的密钥从diffents线源
- 22. 创建三个使用不同资源的相同网站?
- 23. 不同的语言资源
- 24. Django的REST框架相同的路线,不同的
- 25. 同一资源的问题,可通过两条路线访问
- 26. 设计 - 相同的模型 - 不同的页面和路线
- 27. 2资源通知相同的服务
- 28. 访问相同的资源两次
- 29. 如何有两条路线去在Rails的路线相同的端点
- 30. 相同来源,具有不同资源的多个目标(Visual Studio .Net 2008)
名单是什么,你需要在子弹显示的页面。 – mohameddiaa27 2014-11-03 22:11:20
您应该在控制器中执行此操作...如果'用户'作业=此,那么,如果'员工',工作=这样那样的...... – 2014-11-03 22:18:52
我是否正确:员工作为特权用户看到的工作比其他?什么是“普通用户”,是否应该通过认证?这个问题比有用的想法提出了更多的问题,考虑扩大背后的想法。 – 2014-11-03 22:21:25