如何从link_to正确地调用create action?我正在使用REST(map.resources:recipes).以下是创建操作:
def create recipe = Recipe.create(:name => "French fries") redirect_to recipe end
例如,我以为这样的事情可能会起作用:
<%= link_to "Create a default recipe",recipe_path,:method => :post %>
我不知道这是否是推荐(甚至是正确的)方法.任何想法?
解决方法
如果将recipes_path替换为recipe_path,那应该可以工作.
如果你看看耙子路线的输出,你应该看到像:
recipes GET /recipes(.:format) {:controller=>"recipes",:action=>"index"} POST /recipes(.:format) {:controller=>"recipes",:action=>"create"}
这是一个线索,对于创建操作的URL帮助器(“recipes_path”)由最后使用_path的控制器名称组成,使用:method => :岗位.使用相同的路径:method => :get(这是默认值)映射到索引操作.
记住如果Javascript被禁用,这将不起作用,因为Rails实际上是添加一个创建表单来执行POST的on_click处理程序.删除链接与:confirm选项相同.