0

リンクをサブドメインからエスケープできるようにするhelper_methodがあります。ただし、イベントコントローラにない場合は、基本的に「current_event」メソッドを無効にするように見えるため、videos_controllerに影響を与えています。

サブドメインからリンクをエスケープしながら、videos_controllerを機能させることができるように、過去4日間で数十の異なる方法を試しました。

これを達成するための最良の方法は、helpersメソッドから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 に答える