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
Thanks
Greg
--
Posted via http://www.ruby-forum.com/.
>
> this is how i try to call my controller method:
> <%=link_to "Add",:action => :add_ingredient,:id => @product %>
>
Try this <%=link_to "Add",:action => "add_ingredient",:id => @product
%>
Note that the action name is a string.
Hope this helps
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/.
Route:
map.resources :products,
:member => {:add_ingredient => :post }
Controller:
<%= text_field_with_auto_complete :product, :ingredient_name,{},
{:url => formatted_ingredients_path(:js), :method => :get, :with =>
"'search=' + element.value"} %>
<%=link_to "Add",:action => "add_ingredient",:id => @product%>
Frederick Cheung wrote:
> On Mar 11, 12:26�am, Greg Ma <li...@ruby-forum.com> wrote:
>> <%=link_to "Add",:action => :add_ingredient,:id => @product %>
>>
>> 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
--
Posted via http://www.ruby-forum.com/.
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