Action Mailer问题(初学者)

时间:2014-11-19 21:01:33

标签: ruby-on-rails

如果我完全诚实,我完全不理解动作邮件,而且我发现很难发现一个没有使用的应用程序的学习资源。一个完全不同的背景(例如teamtreehouses todo app)。我真的很感激一点帮助。

我有一个商家目录,我希望每个商家信息显示页面都有一个表单,当填写时,将输入的信息发送到附带的电子邮件列表。

这是我的代码:

邮寄包装/ Enquiry.rb

class Enquiry < ActionMailer::Base
  default from: "admin@uk-franchise.co.uk"

  def lead(listing, info)
    @listing = listing
    mail(to: @enquiry.email, subject: 'Email Testing Rails App')
    mail(to: @listing.leadrecepient, subject: "test")
  end
end

列表控制器方法

  def lead
    info = params[:leadname]
    notifier = Notifier.lead(@listing, info)
  end

路由我坚持配置,因为我没有完全理解它们的邮件。

到目前为止,我在展示列表视图中有什么

<%= form_for lead_path(@leadname, @listing), method: :put do |lead| %>
<% end %>

同样,如果有人能够为我提供适合这种情况的学习资源或一些帮助,我会非常感激!

1 个答案:

答案 0 :(得分:0)

以下是您必须做的事情:

  • 不要在一种方法中使用mail方法两次
class Enquiry < ActionMailer::Base
  default from: "admin@uk-franchise.co.uk"

  def lead(listing)
    @listing = listing
    mail(to: @listing.leadrecepient, subject: "test")
  end
end
  • 从控制器操作中发送您的电子邮件:
class ListingsController

  def lead
    #@listing = Listing...
    Enquiry.lead(@listing).deliver
  end
end
  • routes.rb中:
# ...
resources :listings do
  member do
    put :lead
  end
end
# ...
  • 视图:
<%= form_for lead_listing_path(@listing), method: :put do |listing| %>
<% end %>