0

我有一个 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
4

1 回答 1

0

你看过这篇文章了吗?

您可能想要创建一个test只执行类似操作的新函数

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

如果那行得通,您知道它不包括失败,但它必须是方法。否则,您知道该模块不包括在内,您可以缩小搜索范围。

于 2012-12-19T15:16:33.913 回答