How would I correctly call the create action from a link_to? I’m using REST (map.resources :recipes). Here’s the create action:
def create
recipe = Recipe.create(:name => "French fries")
redirect_to recipe
end
For example, I thought something like this might work:
<%= link_to "Create a default recipe", recipe_path, :method => :post %>
I’m not sure if that’s a recommended (or even correct) way to do it. Any idea?
That should work if you substitute
recipes_pathforrecipe_path.If you look at the output of
rake routes, you should see something like:That’s a clue that the URL helper (“recipes_path”), for the create action is made up from the controller name with
_pathtacked on the end, using:method => :post. The same path using:method => :get(which is the default) maps to theindexaction.Remember this won’t work if Javascript is disabled, because Rails is actually adding an on_click handler that creates a form to do the POST. Same goes for delete links with the
:confirmoption.