我有一些现有路线,如:
/people/:id
/events/:id
依此类推,在我的routes.rb
。
现在我想为我的联盟客户提供自定义样式。我目前的想法是我的路线看起来像:
/people/:id
/events/:id
...
/affiliates/:id/people/:id
/affiliates/:id/events/:id
...
等等。
但是,我想确保我在视图中生成的链接将始终以/affiliates/:id
为前缀,如果我在联属网页。 (每次我使用url_for
或path_for
帮助时,我都不想写一个“这是联盟吗?”条件。)
最好的方法是什么?
答案 0 :(得分:0)
在我的选项中,如果您在控制器内而不是在视图中处理该逻辑会更好。
您可以拥有如下内容:
class EventController < ApplicationController
.
.
def show
@event = Event.find(params[:id])
if(current_user.is_affiliate?)
#render the affiliate view
else
#renders regular view
end
end
在您的视图中,您可以轻松拥有
<%= link_to "Event", @event %>
因此视图不需要管理该逻辑,您可以将其保留在控制器上。