Как остановить использование вспомогательного метода для определенного контроллера?
У меня есть helper_method, который позволяет ссылкам выходить из поддоменов. Однако это влияет на мой videos_controller, поскольку, по-видимому, он отрицает метод current_event, когда его нет в контроллере событий.
За последние 4 дня я попробовал несколько десятков различных способов сделать так, чтобы я мог по-прежнему экранировать свои ссылки с субдомена, но все еще позволял работать videos_controller.
Я думаю, что лучший способ добиться этого - исключить 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
метод current_event
def current_event
if request.subdomain.present?
@event = Event.find_by_name(request.subdomain)
end
end
1 ответ
Вы уже посмотрели этот пост?
Возможно, вы захотите создать новую функцию test
это только делает что-то вроде
module UrlHelper
def test
puts "Test is called"
end
end
Если это работает, вы знаете, что это не в том числе и неудача, но это должен быть метод. В противном случае вы знаете, что модуль не включен, и вы можете сузить поиск.