Oh, I should have mentioned that I'm using Rails 2.3.5. I'm not sure
if that makes a difference?
I'll try out what you suggested, thanks!

On May 6, 4:51 pm, Jens Fahnenbruck <[email protected]> wrote:
> @order = inventory.order.build(params[:order])
>
> should be
>
> @order = inventory.orders.build(params[:order])
> On Freitag, 6. Mai 2011 at 22:50, Jens Fahnenbruck wrote:
> I'm not sure if I understood you correctly. I assume you have a route like 
> this:
>
>
>
>
>
>
>
>
>
> > resources :inventories do
> > resources :orders
> > end
>
> > If so you could use a before filter to automatically load the inventory in 
> > your OrdersController before every action like this:
>
> > class OrdersController < ApplicationController
> > def inventory
> > @inventory ||= Inventory.find(params[:inventory_id])
> > end
> > before_filter :inventory
>
> > def new
> > @order = inventory.orders.build
> > end
>
> > def create
> > @order = inventory.order.build(params[:order])
>
> > if @order.save
> > flash[:success] = 'Order created successfully'
> > logger.debug " order saved successfully"
> > redirect_to inventory
> > else
> > logger.debug " order not saved"
> > render :new
> > end
> > end
> > end
>
> > As you can see I simplified your create Action, since you don't use 
> > anything else than html in the response you can skip the `respond_to`. 
> > `redirect_to inventory` is short for `redirect_to 
> > inventory_path(inventory)`, and `render :new` is a shortcut for `render 
> > :action => 'new'`.
>
> > I hope I could help, if not please don't hesitate to ask again.
>
> > Regards, Jens
> > On Freitag, 6. Mai 2011 at 22:29, Mlle wrote:
> > > def new
> > > @order = @inventory.orders.build
> > > end
>
> > > def create
> > > @order = Order.new(params[:order])
> > > @order.inventory_id = params[:inventory_id]
>
> > > respond_to do |format|
> > > if @order.save
> > > flash[:success] = 'Order created successfully'
> > > logger.debug " order saved successfully"
> > > format.html { redirect_to
> > > inventory_path(@order.inventory_id) }
> > > else
> > > logger.debug " order not saved"
> > > format.html { render :action => "new" }
> > > end
> > > end
>
> > > end
>
> > > def get_inventory
> > > @inventory = Inventory.find(params[:inventory_id])
> > > end

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to