如何根据条件在我的Rails视图中添加前缀?

时间:2012-05-22 17:57:37

标签: ruby-on-rails-3

我有一些现有路线,如:

/people/:id
/events/:id

依此类推,在我的routes.rb

现在我想为我的联盟客户提供自定义样式。我目前的想法是我的路线看起来像:

/people/:id
/events/:id
...

/affiliates/:id/people/:id
/affiliates/:id/events/:id
...

等等。

但是,我想确保我在视图中生成的链接将始终以/affiliates/:id为前缀,如果我在联属网页。 (每次我使用url_forpath_for帮助时,我都不想写一个“这是联盟吗?”条件。)

最好的方法是什么?

1 个答案:

答案 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 %>

因此视图不需要管理该逻辑,您可以将其保留在控制器上。