2012-12-19 2 views
0

링크를 하위 도메인에서 탈출 할 수있는 helper_method가 있습니다. 그러나 그것은 내 videos_controller에 영향을 미치고 있습니다. 왜냐하면 본질적으로 이벤트 제어자가 아니라면 'current_event'메소드를 무효화하는 것처럼 보입니다.도우미 메서드가 특정 컨트롤러에 적용되지 않게하는 방법은 무엇입니까?

지난 4 일 동안 여러 가지 방법으로 시도해 보았습니다. 그래야 하위 링크에서 내 링크를 벗어날 수 있지만 여전히 비디오 컨트롤러를 사용할 수 있습니다.

나는 이것을 달성하는 가장 좋은 방법은 도우미 메서드에서 videos_controller를 제외시키는 것이라고 생각하지만 어떻게 (또는 실제로는 가장 좋은 방법인지는 확실하지 않다 - 분명히 멍청 아!) 어떤 제안 사항이든 부디?! 아래에 관련 코드 :

module UrlHelper 
    def url_for(options = nil) 
     if request.subdomain.present? and request.subdomain.downcase != 'www' and !options.nil? and options.is_a?(Hash) and options.has_key? :only_path and options[:only_path] 
     options[:only_path] = false 
     end 
     super 
    end 
end 

Videos_controller

def new 
    if current_event? 
     @video = current_event.videos.new 
    else 
     @video = Video.new 
    end 
    end 

    def create 
    if current_event.present? 
     @video = current_event.videos.new(params[:video]) 
     @video.user_id = current_user.id 
     key = get_key_from_the_cloud 
     @video.key = key 
    else 
     @video = current_user.videos.new(params[:video]) 
     @video.user_id = current_user.id 
     key = get_key_from_the_cloud 
     @video.key = key 
    end 
    if @video.save 
     flash[:success] = "Video uploaded!" 
     redirect_to root_url(subdomain: => current_event.name) 
    else 
     flash[:error] = "#{@video.errors.messages}" 
     render :new 
    end 
    end 

def current_event 
    if request.subdomain.present? 
     @event = Event.find_by_name(request.subdomain) 
    end 
    end 
+0

[이 게시물을 보셨습니까? (http://stackoverflow.com/questions/1179865/why-are-all-rails-helpers-available-to-all-views-all-the-time- - 아직 - 방법 - T는) 아직? – Vikko

+0

나는 그것을 보지 못했지만 문제를 해결하는 데는 도움이되지 못했습니다. 웬일인지 내 이벤트 컨트롤러에 urlhelper를 포함 할 수는 없다. (그리고 '올바르게'UrlHelper '를'EventsController '아래에 포함하려고 노력 중이다.) – jfdimark

+0

포함이 제대로 작동하면 시도해 보셨습니까? 'puts "와 같은 기능을하는 새로운 함수'def test'를 만들 수도 있습니다. Test가" "이라고 불리는 경우 작동하지 않으면 실패하지는 않지만 메소드 만 있어야합니다. 그렇지 않으면 모듈은 다음과 같습니다. 포함되지 않았으며 검색 범위를 좁힐 수 있습니다. – Vikko

답변

0

가 아직 this post을 살펴나요 current_event 방법은?

당신은 당신이 그 실패를 포함하지 알고 작동하는 경우에만

module UrlHelper 
    def test 
    puts "Test is called" 
    end 
end 

같은 무언가를 새로운 기능 test을 만들 수 있습니다 있지만 방법이어야한다. 그렇지 않으면 모듈이 포함되어 있지 않으며 검색 범위를 좁힐 수 있습니다.

관련 문제