2011-10-21 2 views
9

인라인 첨부 파일이있는 레일 3.1에 내 메일러가 있습니다.mailer on rails 3.1

attachments["rails.png"] = File.read("#{Rails.root}/app/assets/images/Rails.png") 

assets_url 같은 뭔가 그것을 바꿀 수있는 방법이있다 :

내가이 코드를 사용하는 첨부 파일을 열려면?

+0

이 경우 asset_url과 같은 것을 사용할 필요가 없으며 (원하는 것도 아닙니다 ...) 처음 몇 단어 만 저장합니다. 또한 짧은 버전 :'File.read (Rails.root.join ('app/assets/images', 'Rails.png'))'에서 자신 만의 "asset_url"과 유사한 도우미를 만들 수 있습니다. –

+0

하지만 외부 자산 인 js 파일이나 전자 메일 본문에 추가 할 외부 이미지와 같은 공급 업체 자산 파일에 자산을 넣을 수 있습니다. –

+0

File.read (Rails.root)와 같은 작업을 수행 할 수 있습니까? join ('public', view_context.asset_path ('Rails.png')))'? 컴파일 된 자산은 항상 공개/자산으로 작동하므로 작동해야합니다. 그'view_context'는 필요하지 않을 수도 있습니다 (또는 ActionMailer :()에서 사용 가능하지 않을 수도 있습니다. 시도해 봅시다.) –

답변

10

올바르게 이해하면 자산 파이프 라인의 검색 기능을 사용하여 주어진 자산의 로컬 경로를 찾으므로 원하는 디렉토리를 하드 코딩 할 필요가 없습니다. 이 작업을 수행 :

<YourAppName>::Application.assets.find_asset('Rails.png').pathname 

이 톱니 검색/표준 파이프 라인을 사용하여 자산을 찾은 당신에게 파일에 대한 완전한 로컬 경로를 제공 할 것입니다.

+0

당신은 선생님 ... 저의 ... 감사합니다. –

+0

안녕하세요. 'app/assets/...'하지만 'public/assets'의 실제 자산 경로는 제공하지 않습니다.이 사실을 알고 있으면 멋지지만 프로덕션 환경에서도 원하는 디렉토리를 제공하지 않습니다. 내 노트에 추가했음을 알 수 있습니다. 감사합니다. – FireDragon

관련 문제