如何从link_to帖子

时间:2019-02-26 07:48:50

标签: ruby-on-rails

我正在尝试在create控制器中的interests操作中呼叫一个邮件程序:

  def create
       if @interest.save
            UserMailer.interest_to_seller(@interest).deliver_now
  etc....

当我要去CRUD / interest / new表单并在那里创建它时,这很好用,但是我实际上是想从另一个地方的post方法调用它。好像create操作一起被跳过,但这是不可能的,因为正在创建记录,对吗?

我的路线.rb:

 resources :seller_listings do
     post :add_interest, on: :member
  end

在我看来:

 <%= link_to add_interest_seller_listings_path(m), method: :post do %>
    Add Interest & Fire Email!
 <%end%>

在兴趣控制器中,我执行了以下操作,即路由文件中的帖子称为:

 def add_interest
     current_user.mark_buyer_interest(seller_listing)

在user.rb中引用了以下内容:

 def mark_buyer_interest(listing)
     buyer_interests.create(seller_listing: listing.id, accepted_by_seller: 0)
 end

这很好用,创建了记录,但是跳过了Mailer。有什么建议么?我从来没有这样做过,所以任何建议都很好。谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您应该在UserMailer.interest_to_seller(@interest).deliver_now中再次致电mark_buyer_interest

def mark_buyer_interest(listing)
  new_interest = buyer_interests.create(seller_listing: listing.id, accepted_by_seller: 0)
  UserMailer.interest_to_seller(new_interest).deliver_now
end