首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails Mailer错误:参数数错误(1表示0)

Rails Mailer错误:参数数错误(1表示0)
EN

Stack Overflow用户
提问于 2013-08-09 13:01:02
回答 1查看 1.2K关注 0票数 1

你好,我正在阅读带有Rails第4版书籍的敏捷Web开发,但我在“任务H:发送邮件”中遇到了一个错误

我有邮件order_notifier.rb

代码语言:javascript
复制
class OrderNotifier < ActionMailer::Base
  default :from => "name@email.tld"

  def received
    @order = order
    mail(:to => order.email, :subject => 'Pragmatic Store Order Confirmation')
  end

  def shipped
    @order = order
    mail(:to => order.email, :subject => 'Pragmatic Store Order Shipped')
  end
end

我有类似于received.text.erb和shipped.text.erb的模板 /views/order_notifier/

代码语言:javascript
复制
Dear <%= @order.name %>
Thank you for your recent order from The Pragmatic Store.
You ordered the following items:
<%= render @order.line_items %>
We'll send you a separate e-mail when your order ships.

我在OrdersController上运行它,我不确定是使用current_cart还是@cart,但我想这并不重要

代码语言:javascript
复制
def create
    @order = Order.new(params[:order])
    @order.add_line_items_from_cart(current_cart)
    #@order.add_line_items_from_cart(@cart)

    respond_to do |format|
 if @order.save
    Cart.destroy(session[:cart_id])
    session[:cart_id] = nil
    OrderNotifier.received(@order).deliver

接收方法的error im tels方法比它需要的参数多一个参数(@order),但书中是这样写的。错误:

代码语言:javascript
复制
ArgumentError in OrdersController#create
wrong number of arguments (1 for 0)

哪里出错了?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 13:08:34

错误在于,received方法在OrderNotifier中不带参数,但是控制器正在传递参数。您应该修改通知程序以接受一个参数,order

另外,我不建议阅读带有Rails的敏捷Web开发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18147264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档