2012-07-03 24 views
0

我正在与书第四版,我已经完成发送确认电子邮件部分,但是当我在浏览器中进行测试时,我有一个问题,当我下订单..在书中在这种(图12.2:我们的结帐屏幕)RoR电子邮件与第四版书

::的ActionView在MissingTemplate订单#创建显示C:/Sites/final/app/views/notifier/order_received.text.erb其中线#7提出:

使用{:locale => [:en],:formats => [:text],:handlers => [:erb,:builder,:jbuilder,:coffee]}缺少部分line_items/line_item。搜寻在:* “C:/站点/最终/应用程序/意见”

提取的源(围绕线#7):

4: 
5: You ordered the following items: 
6: 
7: <%= render @order.line_items %> 
8: 
9: We'll send you a separate e-mail when your order ships. 

Rails.root:C:/站点/最终

应用程序跟踪|框架跟踪|完整跟踪app/views/notifier/order_received.text.erb:7:在_app_views_notifier_order_received_text_erb___555088091_31657836'app/mailers/notifier.rb:12:inorder_received'app/controllers/orders_controller.rb:58:在创建'app/controllers/orders_controller.rb:54:增加'

任何想法???

+0

请使用四个空格缩进源代码示例以获取正确的格式。它使你的问题更容易阅读。 – tadman

回答

1

您缺少创建操作的订单视图模板。但是,您可能不希望为视图创建模板 - 您可能希望重定向到其他操作,具体取决于成功还是失败。例如:

def create 
    @person = Person.new(params[:person]) 
    if @person.save 
    redirect_to @person, :notice => 'You successfully created person' 
    else 
    render :new 
    end 
end 
+0

问题是在order_controller DEF创建 @order = Order.new(PARAMS [:为了]) @ order.add_line_items_from_cart(current_cart) 的respond_to做|格式| 如果 '@ order.save' Cart.destroy(会话[:cart_id]) 会话[:cart_id] =零 Notifier.order_received( '@为了')递送 #.... 当我除去。 Notifier.oder_received(@order).deliver工作正常,但我没有收到电子邮件..任何想法? – marios

+0

@marios你能展示更多的代码吗,例如'.order_received'?你能确认你的电子邮件发送工作正常吗? –

+0

order_received是在邮寄者> notifire和是: 类通告<的ActionMailer ::从基地 缺省: '信贷基金红宝石<[email protected]>' DEF order_received(顺序) '@order =顺序' 邮件:至=> order.email,:subject =>'Koshbay Store Order Confirmation' end def order_shipped(order) '@order = order' mail:to => order.email,:subject =>'Koshbay Store Order Shipped ' 结束 结束 – marios

0

问题出在<%= render @ order.line_items%>! 我删除它,并工作完美,并收到电子邮件!