我在ActionMailer的视图中遇到了关于partials的问题,它们就是不起作用 - 我不知道是我做错了什么,这是一个错误还是根本不支持。
这应该可以工作,因为这也需要在邮件视图中具有DRY代码。从我的测试中,我看到helper是有效的(在将它们包含到ActionMailer类中之后)
我正在使用:Rails 4.0.0和Ruby 2.0.0-p247
错误信息:
ActionView::MissingTemplate at /events/81/user_invitations
==========================================================
> Missing partial user_invitation_mailer/test_partial with {:locale=>[:en], :formats=>[:text], :handlers=>[:erb, :builder, :raw, :ruby, :coffee]}. Searched in:
* "/Users/user/Sites/participate/app/views"
* "/Users/user/.rvm/gems/ruby-2.0.0-p247/gems/devise-3.4.0/app/views"
但这个部分确实存在!- 我不被允许上传图片...结构如下:
- views
-- user_invitation_mailer
--- _test_partial.html.erb
--- user_invitation.text.erb
详情:
在控制器中调用:
UserInvitationMailer.user_invitation(@invitation).deliver
UserInvitationMailer:
class UserInvitationMailer < ActionMailer::Base
add_template_helper(MailerHelper) # for testing including helpers.
def user_invitation(invitation)
@invitation = invitation
mail(to: @invitation.email, subject: 'Invitation')
end
end
user_invitation.text.erb:
Hi <%= @invitation.email %>,
This is a test email see:
<%# test_helper %>
<%= render partial: 'test_partial' %>
Thanks
_test_partial.html.erb:
"Test the partial."
(添加:) 无法工作:
<%= render partial: 'test_partial' %>
<%= render partial: './test_partial' %>
<%= render partial: '../test_partial' %>
<%= render partial: 'user_invitation_mailer/test_partial' %>