복붙노트

[RUBY-ON-RAILS] 만들기는 외부 URL에 경로를 레일

RUBY-ON-RAILS

만들기는 외부 URL에 경로를 레일

(응용 프로그램 URL 레일) // / 블로그를하지만, 사실은 블로그가없는 : 내 사용자의 많은 HTTP에 계속. 드디어 설치 포스 테러 블로그를 지금 내 사용자가 직접 싶다. 이 사용 routes.rb를 구성하는 방법이 있나요? httpd.conf 파일을 편집 할 포함되지 않습니다 더 좋은 방법이 있나요?

해결법

  1. ==============================

    1.사용중인 레일 버전에 따라 다릅니다.

    사용중인 레일 버전에 따라 다릅니다.

    3 레일

    # in routes.rb
    match "/blog" => redirect("http://example.com/blog"), :as => :blog
    

    2 레일

    # in routes.rb
    map.blog '/blog',
      :controller => "a_helper_controller",
      :action => "redirect_to_blog"
    
    # in a_helper_controller.rb
    def redirect_to_blog
      redirect_to "http://example.com/blog"
    end
    
  2. ==============================

    2.나는이 때문에 경우에 다른 사람이 레일 (4)이 필요, 오래 알고 :

    나는이 때문에 경우에 다른 사람이 레일 (4)이 필요, 오래 알고 :

    get "/blog" => redirect("http://example.com/blog")
    

    사용 그렇지 않으면 런타임 오류가 발생합니다, 레일 4 대신 경기 수

  3. ==============================

    3.레일 5 :

    레일 5 :

    get '/stories', to: redirect('/articles')
    get '/stories', to: redirect('http://google.com')
    

    가이드 소스 페이지 레일

  4. ==============================

    4.일반 레일 컨트롤러 경로로 에뮬레이션 프론트 엔드 노선

    일반 레일 컨트롤러 경로로 에뮬레이션 프론트 엔드 노선

    배경 : 시작 부분에 레일 기둥 렌더링 HTML보기가 있었다. 그리고 프론트 엔드는 프론트 엔드 응용 프로그램을 가리키는 앱과 (주로 이메일에)는 JSON API에 백엔드를 변환하고, URL을 생성 할 필요가 반응했다 거의 정확하게 레일 컨트롤러처럼 동작합니다.

    나는 내 앱 RSpec에, 오이 / 카피 바라, 다른 모든 것들과 쉽게 사용할 수있는 적절한 path_helpers을, URL을 구성 할 수 있지만, 프론트 엔드의 URL 대신 가리 키도록하고 생성 자원의 방법을 레일 해내는 할 수있는 방법을 찾고 있었다. 또한 (카피 바라 테스트에 유용) 완전히 desambiguate 프론트 엔드 VS 백엔드 경로로 전달 될 추가 PARAM을 필요로 에뮬레이트 프론트 엔드 경로에 경로 주변이 해킹을 발견

    frontend_scope = {
      as: :frontend,
      host: Rails.configuration.frontend_host, # like https://www.example.com
      port: Rails.configuration.frontend_port, # 443
      constraints: (lambda { |request| request.params[:app] == :frontend })
    }
    scope(frontend_scope) do
      root to: 'static_pages_controller#home'
      resources :articles, only: [:show, :index]
    end
    

    그럼 내 루비 코드에서 내가 사용할 수 있습니다

    frontend_article_url(@article, app: :frontend)
    frontend_articles_url(app: :frontend)
    ... (and everything that can be generated in a classic rails app)
    

    불편은 *, 검색 엔진, 프론트 엔드 응용 프로그램 + Google 웹 로그 분석과 같은 다른 모든 웹 응용 프로그램에 등을 무시해야한다는 것을, 당신의 리디렉션에서 응용 프로그램의 매개 변수가있을 것입니다.

    당신이 당신의 프론트 엔드에 모두 / 기사 및 백엔드에 / 기사가있는 경우 * 문제의 존재는, 앱은 두 경로와 차이를 만들 수 없습니다 그 여분의 PARAM의 도움없이 동일한 URL에 해결

  5. from https://stackoverflow.com/questions/3622706/creating-a-rails-route-to-an-external-url by cc-by-sa and MIT license