On Mar 11, 12:26 am, Greg Ma <[email protected]> wrote:
> Hi,
> I am trying to call a controller method from my view, but I get an error
> and I don't know how to correct it.
> What i am trying to do:
> I am in the edit form of the model Product, and products can have many
> ingredients. So on my edit form there is a text_field where you type the
> ingredient with a link "Add" which is supposed to add the typed
> ingredient to the current ingredients list.
>
> this is how i try to call my controller method:
> <%=link_to "Add",:action => :add_ingredient,:id => @product %>
>
> This is my method in the controller:
>   def add_ingredient
>     if @product.id.blank?
>       @product = Product.find(params[:id])
>     end
>     @product.ingredients <<
> Ingredient.find_or_create_by_name(params[:search])
>     @product.update_attributes(params[:product])
>   end
>
> The error:
> Unknown action
> No action responded to 30. Actions: add_ingredient, create, destroy,
> edit, index, new, show, and update
>
> the url:http://localhost:3000/products/30/add_ingredient
>

assuming that you're using map.resources then you need to add
add_ingredient as a member action (or you might decide that it is
preferable to have ingredients as a nested resource of products)
Either way you should really have a GET request that changes the state
of the database

Fred

> Thanks
> Greg
> --
> Posted viahttp://www.ruby-forum.com/.

-- 
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