2010-12-05 1 views
1

나는 방법이 있습니다레일즈 - 사이트의 절대 URL을 얻는 방법? https://example.com 내 모델 중 하나를 들어

데프 URL을 DOWNLOAD_URL을 = xxxxx는 끝/XXXX/XXXX/3

를 만들기 위해 잘 작동

어떻게 내가 이메일로이 방법을 사용할 수 있도록 절대 URL을 포함하려면이 업데이트됩니다 싶지 :

https://example.com/xxxx/xxxx/3

하지만 핏기없는 하드 코딩하지 마십시오.

APP_DOMAIN = "https://mysite.com" 

그리고 바로이 상수를 사용 : 나는 내가 development.rb에서 상수로 & production.rb을 도메인을 정의 할 dev에 & 생산

+0

'routes.rb'에 루트 루트가 정의되어있을 때'root_url'을 호출하는 것은 어떻습니까? – Zabba

답변

0

에서 작동 그래서 환경 VAR되고 싶어 모델 내에서의 귀하의 방법 :

def download_url 
    "#{APP_DOMAIN}/download/#{id}" 
end 
2

이메일은 효과적으로 뷰이며 헬퍼를 사용할 수 있습니다. 모델에는 실제로 뷰에 대한 지식이 없어야합니다. 대신 URL을 생성하기 위해 이메일 뷰 템플릿에서 url_for 또는 그 자손 메소드 중 하나를 사용해야합니다. 이러한 도우미는 응용 프로그램이 실행되는 위치 (및 관련 구성 - 환경 파일에 config.action_mailer.default_url_options[:host]을 설정하려는)를 기반으로 절대 URL을 생성 할 수 있습니다. 환경 변수 등을 혼동하지 않아도됩니다.

0

추울 수도 있지만 필수적입니다. Rails 애플리케이션은 루트 URL을 알지 못하므로 루트 URL을 알 필요가 없습니다. 이것이 웹 서버의 일입니다. 하지만 하드 코딩이 ...

capistrano 또는 다른 배포 방법을 사용하는 경우 변수에서 서버 호스트를 정의하고 앱에서 읽을 수있는 파일에 쓸 수 있습니다.

관련 문제