生产中邮件程序中的 Rails4 模板错误
Rails4 template error in mailer in production
在我的生产环境中。我不断收到此错误:
ActionView::Template::Error: undefined method `protocol' for nil:NilClass
我不知道这个错误在我的模板中的什么地方,有人可以帮我解决这个问题吗?
代码更新
完整代码:Pastebin
我删了,我觉得可能出问题的地方:
<tr>
<td class="eHeader" style="">
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="">
<tr>
<td class="eHeader" style="">
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="">
<tr>
<td class="eHeaderLogo" style="">
<a href="#" style="">
<img class="imageFix" src="<%= image_url('crewnetlogo-white.png') %>" width="200" height="48" alt="Crewnet" style="">
</a>
</td>
<!-- end .eHeaderLogo-->
<td class="eHeaderOptions" style="">
</td>
<!-- end .eHeaderOptions-->
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<h1>
<span>
Du er blevet tildelt <%= @workplace.name %>
</span>
</h1>
<div class="bannerLink">
<a href="#" style="">
<img src="<%= image_url "app.png" %>" alt="Crewnet" width="512" height="194" style="">
</a>
</div>
</td>
<!-- end .highlight-->
</tr>
<tr>
<td class="eBody bottomLine" style="">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="entryBox" style="">
<tr>
<td class="width132 pdBt16" style="">
<a href="#" style="">
<img src="<%= image_url "file_icon.gif" %>" width="116" height="116" alt="File" style="">
</a>
</td>
<td class="alignLeft" style="">
<p style="">
Hej <%= @user.name %>!<br>
Du har fået tildelt <%= @workplace.name %> som ansvarsområde. <br>
For mere info log på <a href="<%= workplace_url(@workplace) %>">CrewNet | <%= @workplace.name %></a>.
</p>
<p style="">
Skulle du have nogle spørgsmål, kan du kontakte supporten på <a href="mailto:support@crewnet.dk">support@crewnet.dk</a>.
<br>
<br>
Teamet bag CrewNet.dk
</p>
</td>
</tr>
</table>
</td>
<!-- end .eBody-->
</tr>
邮递员[=36=]
class SupervisorMailer < ActionMailer::Base
default from: "support@crewnet.dk"
def assigned(user, workplace)
@user = User.find(user)
@workplace = Workplace.find(workplace)
mail to: @user.email, subject: "Du er ansvarlig for #{@workplace.name}."
end
end
production.rb
config.action_mailer.default_url_options = { :host => Rails.application.secrets.domain_name, :protocol => "http" }
config.action_mailer.asset_host = Rails.application.secrets.domain_name
env
secrets.domain_name = crewnet.dk
可能与url建筑有关。您的 production.rb 中是否有 asset_host
设置?也许您必须向 asset_host
添加协议?
Rails.application.configure do
...
config.action_mailer.asset_host = 'http://example.com'
...
end
在我的生产环境中。我不断收到此错误:
ActionView::Template::Error: undefined method `protocol' for nil:NilClass
我不知道这个错误在我的模板中的什么地方,有人可以帮我解决这个问题吗?
代码更新
完整代码:Pastebin
我删了,我觉得可能出问题的地方:
<tr>
<td class="eHeader" style="">
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="">
<tr>
<td class="eHeader" style="">
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="">
<tr>
<td class="eHeaderLogo" style="">
<a href="#" style="">
<img class="imageFix" src="<%= image_url('crewnetlogo-white.png') %>" width="200" height="48" alt="Crewnet" style="">
</a>
</td>
<!-- end .eHeaderLogo-->
<td class="eHeaderOptions" style="">
</td>
<!-- end .eHeaderOptions-->
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<h1>
<span>
Du er blevet tildelt <%= @workplace.name %>
</span>
</h1>
<div class="bannerLink">
<a href="#" style="">
<img src="<%= image_url "app.png" %>" alt="Crewnet" width="512" height="194" style="">
</a>
</div>
</td>
<!-- end .highlight-->
</tr>
<tr>
<td class="eBody bottomLine" style="">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="entryBox" style="">
<tr>
<td class="width132 pdBt16" style="">
<a href="#" style="">
<img src="<%= image_url "file_icon.gif" %>" width="116" height="116" alt="File" style="">
</a>
</td>
<td class="alignLeft" style="">
<p style="">
Hej <%= @user.name %>!<br>
Du har fået tildelt <%= @workplace.name %> som ansvarsområde. <br>
For mere info log på <a href="<%= workplace_url(@workplace) %>">CrewNet | <%= @workplace.name %></a>.
</p>
<p style="">
Skulle du have nogle spørgsmål, kan du kontakte supporten på <a href="mailto:support@crewnet.dk">support@crewnet.dk</a>.
<br>
<br>
Teamet bag CrewNet.dk
</p>
</td>
</tr>
</table>
</td>
<!-- end .eBody-->
</tr>
邮递员[=36=]
class SupervisorMailer < ActionMailer::Base
default from: "support@crewnet.dk"
def assigned(user, workplace)
@user = User.find(user)
@workplace = Workplace.find(workplace)
mail to: @user.email, subject: "Du er ansvarlig for #{@workplace.name}."
end
end
production.rb
config.action_mailer.default_url_options = { :host => Rails.application.secrets.domain_name, :protocol => "http" }
config.action_mailer.asset_host = Rails.application.secrets.domain_name
env
secrets.domain_name = crewnet.dk
可能与url建筑有关。您的 production.rb 中是否有 asset_host
设置?也许您必须向 asset_host
添加协议?
Rails.application.configure do
...
config.action_mailer.asset_host = 'http://example.com'
...
end