[英]Getting Format in Mailer View in Rails
在我的Rails應用程序中,我在Mailer視圖中使用一種方法來創建一個鏈接,該鏈接根據html
或text
格式采用格式參數。
mailer_link_to( url, link_text, format )
根據格式,它要么為html創建錨<a>
標記,要么僅顯示文本的url
。
因此,對於每個Mailer方法,我都有兩個視圖:
myemail.html.erb
myemail.text.erb
在myemail.html.erb
,我使用mailer_link_to( "http://ntwrkapp.com", "ntwrk", "html" )
。
在myemail.text.erb
我使用mailer_link_to( "http://ntwrkapp.com", "ntwrk", "text" )
。
我想知道的是,是否可以確定格式是什么,所以我不必重復太多代碼,而不必每次都指定"html"
或"text"
。
如果我在普通視圖/控制器中,則可以執行諸如request.format
但該request
對象在Mailer視圖中不可用。
謝謝!
self.formats
。 在另一個答案中發現,每個視圖都有一個.formats
方法,該方法包含一個將用於.formats
和其他格式的格式數組:
self.formats #=> [:text]
因此,您可以使用此方法將當前格式手動傳遞給mailer_link_to
方法,如下所示:
mailer_link_to( "http://ntwrkapp.com", "ntwrk", self.formats.first )
我要同意,要阻止任何人說我應該只使用局部格式,它將自動通過正確的格式。 為了簡化問題,我簡化了示例,但在我的實際用例中,確實需要手動獲取Mailer View的格式。 謝謝您的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.