我有一个工作应用程序,有两种(未经过身份验证的)用户,推荐人和候选人。
目前我有1个作业控制器和模型。
基本上,我想要两条路线:
job/1 # jobs#show for referrers
j/1 # jobs#show for candidates
两条路线都是公共路线,没有登录用户。
虽然两条路线的模型数据(=内容)非常相似,但视图明显不同。我正在努力在同一个控制器中创建两个不同的节目视图。
我已经看过设置一个单独的命名空间(似乎是整个控制器),特定的获取路由或设置一个单独的控制器,但真的不确定最好的" Rails"方式是。
任何建议都会非常有用,提前谢谢!
答案 0 :(得分:1)
我看到两个选项:
1)在控制器中创建单独的操作
def referrers
end
def cadidates
end
get '/j/:id' => 'jobs#cadidates'
get '/job/:id' => 'jobs#referrers'
这需要两个带有操作的新视图。在您的作业视图文件夹中添加两个文件:candidates.erb和referrers.erb。您可以调整每个视图。
2)您可以嵌套资源
resources :job do
member do
get :referrers, :candidates
end
end
您必须定义一个新模型并创建联合表,其中引用者和候选者都被定义为用户,但分别是不同的表引用者和候选者的一部分。
答案 1 :(得分:1)
在 JobsController 中创建两种不同的方法。说
def referrers
end
def cadidates
end
现在在 routes.rb 中添加新创建的方法,如
get '/j/:id', :to => 'jobs#cadidates'
get '/job/:id', :to => 'jobs#referrers'