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
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
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
Since its a post request, you should have a form in your view, which
when submitted, will ensure that all the text fields etc. are available
in your controller.
Punit
Greg Ma wrote:
Hi,
Thanks it works better now. But how am i supposed to access my textfield
if I am using a get method in my controller?
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
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.