링크를 하위 도메인에서 탈출 할 수있는 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
[이 게시물을 보셨습니까? (http://stackoverflow.com/questions/1179865/why-are-all-rails-helpers-available-to-all-views-all-the-time- - 아직 - 방법 - T는) 아직? – Vikko
나는 그것을 보지 못했지만 문제를 해결하는 데는 도움이되지 못했습니다. 웬일인지 내 이벤트 컨트롤러에 urlhelper를 포함 할 수는 없다. (그리고 '올바르게'UrlHelper '를'EventsController '아래에 포함하려고 노력 중이다.) – jfdimark
포함이 제대로 작동하면 시도해 보셨습니까? 'puts "와 같은 기능을하는 새로운 함수'def test'를 만들 수도 있습니다. Test가" "이라고 불리는 경우 작동하지 않으면 실패하지는 않지만 메소드 만 있어야합니다. 그렇지 않으면 모듈은 다음과 같습니다. 포함되지 않았으며 검색 범위를 좁힐 수 있습니다. – Vikko