2012-05-22 2 views
0

내가 같은 일부 기존 노선이 : 내 routes.rb에 등조건에 따라 레일스 뷰에서 링크를 어떻게 접두사로 붙일 수 있습니까?

/people/:id 
/events/:id 

와.

이제 제휴사 고객을 위해 맞춤 스타일링을 제공하고 싶습니다. 현재 내 생각은 내 경로가 다음과 같이 보일 것입니다.

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

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

등등.

그러나 제휴사 페이지에있는 경우 내 의견에 생성되는 링크가 항상 /affiliates/:id으로 시작됩니다. (url_for 또는 path_for 도우미를 사용할 때마다 조건부로 작성해야합니다.

어떻게해야할까요?

답변

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

을 가질 수 있고 당신이 그것을 유지할 수 있습니다 컨트롤러.

관련 문제