简体   繁体   English

生产中邮件中的Rails4模板错误

[英]Rails4 template error in mailer in production

On in my production env. 在我的生产环境中。 I keep getting this error: 我一直收到这个错误:

ActionView::Template::Error: undefined method `protocol' for nil:NilClass

I can't figure out where this error are in my template, can anybody help me figure this out? 我无法弄清楚我的模板中出现此错误的位置,有人可以帮我解决这个问题吗?

CODE UPDATE 代码更新

Complete code: Pastebin 完整代码: Pastebin

I cut out, the area I think might cause problem: 我剪掉了,我觉得这个区域可能会引起问题:

<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>

Mailer 信封

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 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 ENV

secrets.domain_name = crewnet.dk

Probably it's realted to url building. 可能它是建筑物的网址。 Do you have asset_host setting in your production.rb? 你的asset_host中有asset_host设置吗? Maybe you have to add protocol to asset_host ? 也许你必须将协议添加到asset_host

Rails.application.configure do
  ...
  config.action_mailer.asset_host = 'http://example.com'
  ...
end

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM