I have the Beta2 Rails book, and am working through the Store example.
On page 103, I have just added the checkout function. After getting the
checkout page at http://localhost:3000/store/checkout, I click the
CHECKOUT button with all fields empty. Instead of the page''s being
redisplayed with error messages, I get:
------------------------------------------------------------------------
ActionView::ActionViewError in Store#save_order
No rhtml, rxml, or delegate template found for actioncheckout
app/controllers/store_controller.rb:43:in `save_order''
script/server:48
Show framework trace
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_view/base.rb:213:in
`pick_template_extension''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_view/base.rb:171:in
`render_file''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_controller/layout.rb:208:in
`render_without_benchmark''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_controller/benchmarking.rb:23:in
`render''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_controller/benchmarking.rb:23:in
`measure''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_controller/benchmarking.rb:23:in
`render''
Parameters: {"order"=>{"name"=>"",
"pay_type"=>"", "address"=>"",
"email"=>""}}
Show session dump
---
flash: !ruby/hash:ActionController::Flash::FlashHash {}
:cart: !ruby/object:Cart
items:
- !ruby/object:LineItem
attributes:
order_id:
product_id: 1
quantity: 1
unit_price: 1.0
new_record: true
product: !ruby/object:Product
attributes:
image_url: http:a.jpg
date_available: 2005-06-13 15:53:00
price: "1.00"
title: a
id: "1"
description: a
- !ruby/object:LineItem
attributes:
order_id:
product_id: 2
quantity: 1
unit_price: 2.0
new_record: true
product: !ruby/object:Product
attributes:
image_url: http:b.jpg
date_available: 2005-06-13 15:53:00
price: "2.00"
title: b
id: "2"
description: b
total_price: 3.0
Response
Headers: {"cookie"=>[],
"Cache-Control"=>"no-cache"}
------------------------------------------------
The store_controller.rb section being invoked is:
def checkout
@items = cart.items
if @items.empty?
redirect_to_index("There''s nothing in your cart!")
else
@order = Order.new
end
end
def save_order
@order = Order.new(params[:order])
@order.line_items << cart.items
if @order.save
cart.empty!
redirect_to_index(''Thank you for your order.'')
else
render(:action => ''checkout'')
end
end
Line 43, referenced in the error message is the render(:action =>
''checkout'') statement. If I enter data in all the required
fields, the
order is saved.
Can anyone tell me what I am doing wrong?
Thank you.
--
Jim McMaster
mailto:jmcmaster-VsM5TWebDq2iu113P13oHA@public.gmane.org
Jim
I had the same problem using Rails 0.12.1, and changed the last line
(inside the else block) in save_order to
render_action(''checkout'').
I read somewhere, can''t recall where - that the next version of Rails
will use token args for a lot of render methods, but I don''t think
they work in 0.12.1 (at least not in my win32 env).
Hope that helps
Erik
----
Message: 8
Date: Mon, 13 Jun 2005 16:44:55 -0600
From: Jim McMaster <jmcmaster-VsM5TWebDq2iu113P13oHA@public.gmane.org>
Subject: [Rails] Problem with Rails book
To: rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
Message-ID: <1118702695.12267.63.camel@dev14dt>
Content-Type: text/plain
I have the Beta2 Rails book, and am working through the Store example.
On page 103, I have just added the checkout function. After getting the
checkout page at http://localhost:3000/store/checkout, I click the
CHECKOUT button with all fields empty. Instead of the page''s being
redisplayed with error messages, I get:
------------------------------------------------------------------------
ActionView::ActionViewError in Store#save_order
No rhtml, rxml, or delegate template found for actioncheckout
app/controllers/store_controller.rb:43:in `save_order''
script/server:48
Show framework trace
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_view/base.rb:213:in
`pick_template_extension''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_view/base.rb:171:in
`render_file''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_controller/layout.rb:208:in
`render_without_benchmark''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_controller/benchmarking.rb:23:in
`render''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_controller/benchmarking.rb:23:in
`measure''
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/action_controller/benchmarking.rb:23:in
`render''
Parameters: {"order"=>{"name"=>"",
"pay_type"=>"", "address"=>"",
"email"=>""}}
Show session dump
---
flash: !ruby/hash:ActionController::Flash::FlashHash {}
:cart: !ruby/object:Cart
items:
- !ruby/object:LineItem
attributes:
order_id:
product_id: 1
quantity: 1
unit_price: 1.0
new_record: true
product: !ruby/object:Product
attributes:
image_url: http:a.jpg
date_available: 2005-06-13 15:53:00
price: "1.00"
title: a
id: "1"
description: a
- !ruby/object:LineItem
attributes:
order_id:
product_id: 2
quantity: 1
unit_price: 2.0
new_record: true
product: !ruby/object:Product
attributes:
image_url: http:b.jpg
date_available: 2005-06-13 15:53:00
price: "2.00"
title: b
id: "2"
description: b
total_price: 3.0
Response
Headers: {"cookie"=>[],
"Cache-Control"=>"no-cache"}
------------------------------------------------
The store_controller.rb section being invoked is:
def checkout
@items = cart.items
if @items.empty?
redirect_to_index("There''s nothing in your cart!")
else
@order = Order.new
end
end
def save_order
@order = Order.new(params[:order])
@order.line_items << cart.items
if @order.save
cart.empty!
redirect_to_index(''Thank you for your order.'')
else
render(:action => ''checkout'')
end
end
Line 43, referenced in the error message is the render(:action =>
''checkout'') statement. If I enter data in all the required
fields, the
order is saved.
Can anyone tell me what I am doing wrong?
Thank you.
--
Jim McMaster
mailto:jmcmaster-VsM5TWebDq2iu113P13oHA@public.gmane.org
On Mon, 2005-06-13 at 23:58 +0100, Erik Eide wrote:> Jim > > I had the same problem using Rails 0.12.1, and changed the last line > (inside the else block) in save_order to render_action(''checkout''). > > I read somewhere, can''t recall where - that the next version of Rails > will use token args for a lot of render methods, but I don''t think > they work in 0.12.1 (at least not in my win32 env). > > Hope that helps > Erik >That was indeed the problem. Thank you. I now have a similar issue on the "render(layout => false)" line. I get no template for layoutfalse. Does anyone have a solution for that? -- Jim McMaster mailto:jmcmaster-VsM5TWebDq2iu113P13oHA@public.gmane.org
Hi Jim I think it might be the same deal, check the rdoc on actionpack and you should find the existing (or old style) method calls. For render(:layout => false) I''ve used render_without_layout Cheers Erik On 6/14/05, Jim McMaster <jmcmaster-VsM5TWebDq2iu113P13oHA@public.gmane.org> wrote:> On Mon, 2005-06-13 at 23:58 +0100, Erik Eide wrote: > > Jim > > > > I had the same problem using Rails 0.12.1, and changed the last line > > (inside the else block) in save_order to render_action(''checkout''). > > > > I read somewhere, can''t recall where - that the next version of Rails > > will use token args for a lot of render methods, but I don''t think > > they work in 0.12.1 (at least not in my win32 env). > > > > Hope that helps > > Erik > > > That was indeed the problem. Thank you. > > I now have a similar issue on the "render(layout => false)" line. I get > no template for layoutfalse. Does anyone have a solution for that? > -- > Jim McMaster > mailto:jmcmaster-VsM5TWebDq2iu113P13oHA@public.gmane.org > >
Jim McMaster wrote:> I have the Beta2 Rails book, and am working through the Store example. > On page 103, I have just added the checkout function. After getting the > checkout page at http://localhost:3000/store/checkout, I click the > CHECKOUT button with all fields empty. Instead of the page''s being > redisplayed with error messages, I get: > ------------------------------------------------------------------------ > ActionView::ActionViewError in Store#save_order > No rhtml, rxml, or delegate template found for actioncheckout > app/controllers/store_controller.rb:43:in `save_order''[snip] Jim, to use the code examples in the Beta 2 book, I suggest you work with the Rails beta gems. The Beta 1 book was fine with Rails 0.12.1 (at least as far as I got before Beta 2 came out), but the second beta goes beyond that. Do this: > gem update --source http://gems.rubyonrails.org regards Justin
On Mon, 2005-06-13 at 23:58 +0100, Erik Eide wrote:> Jim > > I had the same problem using Rails 0.12.1, and changed the last line > (inside the else block) in save_order to render_action(''checkout''). > > I read somewhere, can''t recall where - that the next version of Rails > will use token args for a lot of render methods, but I don''t think > they work in 0.12.1 (at least not in my win32 env). >That did indeed solve the problem. Thank you. -- Jim McMaster mailto:jmcmaster-VsM5TWebDq2iu113P13oHA@public.gmane.org
Thanks, Erik. This helped me as well. Erik Eide <erik.eide@...> writes:> > Hi Jim > > I think it might be the same deal, check the rdoc on actionpack and > you should find the existing (or old style) method calls. For > render(:layout => false) I''ve used render_without_layout > > Cheers > Erik<snip>