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.

