簡體   English   中英

在Rails的Mailer視圖中獲取格式

[英]Getting Format in Mailer View in Rails

在我的Rails應用程序中,我在Mailer視圖中使用一種方法來創建一個鏈接,該鏈接根據htmltext格式采用格式參數。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM