Rails에서 전체 URL을 얻고 빌드하는 방법
request.original_url
이것은 스키마, 호스트, 포트, 경로 및 쿼리 문자열을 포함하지만 앵커는 없는 절대 전체 URL을 반환합니다.
따라서
https://example.com/resource?q=first
에 대한 요청의 경우:request.original_url # => https://example.com/resource?q=first
request.fullpath # => /resource?q=first
request.path # => /resource
전체 URL 구축
컨트롤러 보기에서 전체 URL을 빌드해야 하는 경우 Rails에서 제공하는 URL 헬퍼를 사용하면 됩니다.
post_url(@post)
그러나 request(controller/view) 범위 밖에서는 그렇게 쉽지 않습니다. 예를 들어 백그라운드 작업 내에서 전체 URL을 구축해야 하는 경우 요청이 없기 때문에 Rails는 요청에서 해당 호스트를 가져올 수 없습니다.
작동하려면 두 가지가 필요합니다.
먼저 URL 도우미를 포함합니다.
class MyJob < ApplicationJob
include Rails.application.routes.url_helpers
def perform(user)
user_url(user)
...
end
end
그런 다음 앱 구성에서 URL 옵션을 설정합니다.
# config/environments/production.rb
Rails.application.routes.default_url_options[:host] = "example.com"
# And for email views
Rails.application.config.action_mailer[:host] = "example.com"
자산(예: 이메일의 이미지/아이콘)에 대한 URL을 생성해야 하는 경우
asset_host
도 설정해야 합니다.# Need only if host is other than the one
# that handles requests
config.action_controller.asset_host = 'example.com'
# Required since mailer has no request context
# to get host address from
config.action_mailer.asset_host = 'example.com'
Reference
이 문제에 관하여(Rails에서 전체 URL을 얻고 빌드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jetthoughts/how-to-get-build-full-urls-in-rails-448텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)