在Rails中获取Mailer视图中的格式
在我的Rails应用程序中,我在我的Mailer视图中使用一种方法来创建一个链接,该链接根据格式参数是html
还是text
格式。
mailer_link_to( url, link_text, format )
根据格式,它可以为html创建一个anchor 标签,或者只显示文本的
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
方法,其中包含将在partials和.formats
中使用的格式数组:
self.formats #=> [:text]
因此,您可以使用此方法手动将当前格式传递给mailer_link_to
方法,如下所示:
mailer_link_to( "http://ntwrkapp.com", "ntwrk", self.formats.first )
为了抢先说任何人说我应该使用部分,这将自动传递正确的格式,我同意! 为了提出问题,我简化了我的例子,但在我的实际用例中,我确实需要手动获取Mailer View的格式。 谢谢你试图帮忙,谢谢。