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