繁体   English   中英

Ruby on Rails:我可以使用“link_to”来调用创建操作吗?

[英]Ruby on Rails: Can I do a “link_to” to call a create action?

如何从link_to正确调用create动作? 我正在使用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替换recipes_path ,那应该recipe_path

如果你看一下rake routes的输出,你应该看到类似的东西:

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

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

请记住,如果禁用Javascript,这将无效,因为Rails实际上是添加了一个on_click处理程序,该处理程序创建了一个表单来执行POST。 使用:confirm选项删除链接也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM