RubyonRails中可以做一个“link_to”来调用创建操作吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (13)

我如何正确地从link_to调用创建操作?正在使用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,就可以工作。

如果你看rake routes的输出结果

你应该看到如下内容:

recipes GET /recipes(.:format) {:controller=>"recipes", :action=>"index"}
        POST /recipes(.:format) {:controller=>"recipes", :action=>"create"}

这是“recipes_path”的一个线索,用于创建操作由控制器名称组成,_path最终使用:method => :post。使用相同的路径:method => :get(这是默认值)映射到index操作。

如果Javascript被禁用,这将不起作用,因为Rails实际上添加了一个on_click处理程序,该处理程序创建一个表单来执行POST。使用该:confirm选项删除链接也一样。

扫码关注云+社区