Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:当用户下订单时,如何向用户发送订单电子邮件?_Ruby On Rails_Ruby On Rails 3_E Commerce - Fatal编程技术网

Ruby on rails Rails:当用户下订单时,如何向用户发送订单电子邮件?

Ruby on rails Rails:当用户下订单时,如何向用户发送订单电子邮件?,ruby-on-rails,ruby-on-rails-3,e-commerce,Ruby On Rails,Ruby On Rails 3,E Commerce,我第一次构建了一个基于rails的电子商务应用程序。我想在用户提交订单时向其发送一封电子邮件,就像我们在mealnut.com或fab.com上下订单时收到电子邮件收据的方式一样。我正在搜索教程,但与订单提交电子邮件无关。每个用户注册或重置等 有人实施过吗?或者了解rails中的任何资源/教程 感谢您的指导/帮助 恐怕发送电子邮件是一个相当标准的程序。。您找到的教程可能也适用。您需要了解,可以通过任何控制器操作触发要发送的消息。。在您的情况下,您需要订单创建操作 在阅读以下内容后: 您可以进行

我第一次构建了一个基于rails的电子商务应用程序。我想在用户提交订单时向其发送一封电子邮件,就像我们在mealnut.com或fab.com上下订单时收到电子邮件收据的方式一样。我正在搜索教程,但与订单提交电子邮件无关。每个用户注册或重置等

有人实施过吗?或者了解rails中的任何资源/教程


感谢您的指导/帮助

恐怕发送电子邮件是一个相当标准的程序。。您找到的教程可能也适用。您需要了解,可以通过任何控制器操作触发要发送的消息。。在您的情况下,您需要订单创建操作

在阅读以下内容后:

您可以进行必要的更改,并从订单创建操作中呼叫邮件发送者:

class OrdersController < ApplicationController
  def create
    @order = Order.new(params[:order])
    if @order.save
      UserMailer.order_confirmation(@order, @user).deliver
      redirect_to @user, notice: "Order Completed Successfully."
    else
      render :new
    end
  end
end
class OrdersController

我在上面使用UserMailer的原因是,您可能希望设置一个向用户发送消息的邮件程序,但如果您愿意,可以称之为OrderMailer。

发送电子邮件恐怕是一个相当标准的过程。。您找到的教程可能也适用。您需要了解,可以通过任何控制器操作触发要发送的消息。。在您的情况下,您需要订单创建操作

在阅读以下内容后:

您可以进行必要的更改,并从订单创建操作中呼叫邮件发送者:

class OrdersController < ApplicationController
  def create
    @order = Order.new(params[:order])
    if @order.save
      UserMailer.order_confirmation(@order, @user).deliver
      redirect_to @user, notice: "Order Completed Successfully."
    else
      render :new
    end
  end
end
class OrdersController

我在上面使用UserMailer的原因是,您可能希望设置一个向用户发送消息的邮件程序,但如果需要,可以将其称为OrderMailer。

首先生成邮件程序以编写所需操作

rails g mailer UserMailer
然后在app/mailers/user_mailer.rb文件中

class UserMailer < ActionMailer::Base
  default from: 'notifications@example.com'

  def order_confirmation(user, order)
    @user = user
    @order = order
    mail(to: user.email, subject: 'Order has been received')
  end
end
然后在控制器操作中,您将在其中创建订单,在创建订单后放置下一行以发送电子邮件

UserMailer.order_confirmation(user, order).deliver

有关详细信息,请参阅。

首先生成用于编写所需操作的邮件程序

rails g mailer UserMailer
然后在app/mailers/user_mailer.rb文件中

class UserMailer < ActionMailer::Base
  default from: 'notifications@example.com'

  def order_confirmation(user, order)
    @user = user
    @order = order
    mail(to: user.email, subject: 'Order has been received')
  end
end
然后在控制器操作中,您将在其中创建订单,在创建订单后放置下一行以发送电子邮件

UserMailer.order_confirmation(user, order).deliver

有关详细信息,请参阅。

您不能/不适合使用Deave-mailer(因为Deave-mailer用于用户身份验证)。您可以做的是,您可以使用observer类来发送电子邮件

例:

类顺序
订单创建完成后,此OrderObserver会发送一封电子邮件


关于使用rails3发送电子邮件,与发送放弃密码/注册等的电子邮件相同,只是内容不同。

您不能/不适合使用Desive mailer(因为Desive mailer用于用户身份验证)。您可以做的是,您可以使用observer类来发送电子邮件

例:

类顺序
订单创建完成后,此OrderObserver会发送一封电子邮件


关于使用rails3发送电子邮件,与发送放弃密码/注册等的电子邮件相同,只是内容不同。

给出详细的建议意味着需要更多的细节,因此一些一般性建议:在接下来的过程中,您将完成您的案例所需的所有步骤,但是你需要根据自己的情况调整它们。给出详细的建议意味着需要更多的细节,因此一些一般性的建议:在未来,你也将经历你的案例所需的所有步骤,但你需要根据自己的情况调整它们。我有一个设计邮件程序。太困惑了。我应该使用UserMailer吗?或者可以使用设计邮递器?没问题,很高兴它帮助了你:)我有一个设计邮递器。太困惑了。我应该使用UserMailer吗?或者可以使用Desive-mailer?没问题,很高兴它对您有所帮助:)我相信rails 4中的观察器已经被弃用了。我会在您的订单模型中保留您创建的售后服务。但是您可能没有触发“创建”。您可能希望在订单状态从“进行中”变为“已付款”时触发。我相信rails 4中的观察员已被弃用。我会在您的订单模型中保留您创建的售后服务。但是您可能没有触发“创建”。您可能希望在订单状态从“进行中”变为“已付款”时触发。