Rails梅勒搞砸了

时间:2016-11-14 08:51:24

标签: ruby ruby-on-rails-4

我使用Ruby on Rails应用程序实现了一个RoR邮件程序,它运行良好。但令我惊讶的是,每次发送邮件时,我的数据库表中的其他属性都填写在我发送的电子邮件中,我不想

要查看我的问题,请参阅此Mailer预览图:

enter image description here

模型(job.rb)

class Job < ActiveRecord::Base
  def self.jobs_posted_12hrs_ago
    where.not('stripeEmail' => nil).where.not('payola_sale_guid' => nil).where('created_at > ?', Time.now - 12.hours)
  end
end

应用/邮寄者/ job_notifier.rb

class JobNotifier < ApplicationMailer


  def send_post_email(job)
    @user = User.where(:email => true).all
    emails = @user.collect(&:email).join("#{';'}")
    @jobs = job
    @job = job
    mail(:to => emails, :bcc => User.pluck(:email).uniq, :subject => 'New job posted on FarFlungJobs')
  end

end

电子邮件模板/视图(send_post_email.html.erb)

我确实迭代了我的范围并填充了Comapny名称,职位和日期。但是当预览/发送电子邮件时,数据库中的其他属性将被填充。

<!DOCTYPE html>
<html>
<head>
  <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>

<body>
  <div>
    <h3> Hi, new job just posted on FarFlungJobs.com! </h3>
  </div>

  <section>
    <p>Fresh Job</p>
    <hr>
    <p>
      <% jobs = Job.jobs_posted_12hrs_ago %>
        <%= jobs.each do |job| %>
            <section class="container">
              <div class="row jobs">
                <div class="col-md-4" style="font-size: 20px;"><strong><%= job.company_name %></strong></div>
                <div class="col-md-4" style="font-size: 20px;"><%= link_to(job.title, job) %></div>
                <div class="col-md-4 text-right" style="font-size: 20px; float: left;"><%= job.created_at.strftime('%d %B %y') %></div>
              </div>
              <%= render 'shared/two_breaks'%>
            </section>
        <% end %>
    </p>

    <p>Thanks for subscribing to FarFlungJobs once again. <%=  jobs_url %> </p>

  </section>
</body>
</html>
  

我该怎样做才能确保只发送我的电子邮件模板中的指定属性,而不是添加我不想要的所有属性?

1 个答案:

答案 0 :(得分:5)

问题在于这一行:

<%= jobs.each do |job| %>

由于&lt;%=它会打印出每个语句的结果,即作业。