0

次のような既存のルートがいくつかあります。

/people/:id
/events/:id

など、私のroutes.rb.

今、アフィリエイトの顧客にカスタム スタイルを提供したいと考えています。私の現在の考えでは、ルートは次のようになります。

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

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

等々。

ただし、アフィリエイト ページを表示している場合、ビューで生成するリンクには常に がプレフィックスとして付けられる/affiliates/:idようにしたいと考えています。url_for( orpath_forヘルパーを使用するたびに「これはアフィリエイトですか?」という条件文を書く必要はありません。)

それを行う最善の方法は何ですか?

4

1 に答える 1

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

そのため、ビューはそのロジックを管理する必要がなく、コントローラー上に保持できます。

于 2012-05-22T23:58:44.587 に答える