首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Form_tag 'create‘vs /create

Form_tag 'create‘vs /create
EN

Stack Overflow用户
提问于 2014-11-22 14:53:11
回答 1查看 108关注 0票数 0

我正在探索form_tag的所有选项,我注意到如果我使用form_tag(action:'create'),它就会发布“create”。

但是,如果使用form_tag('/create')form_tag('create'),则在浏览器中会出现此错误\

代码语言:javascript
复制
No route matches [POST] "/create"

我只是从关于form_tag的Rails文档中给出的示例推断使用'/create‘(tag)。

,有人知道我为什么会犯这个错误吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-22 15:29:39

form_tag需要找到发送数据的路径所需的任何东西。

action: 'create'被解析为{action: 'create'} (一个Hash ),它调用路由系统(在routes.rb中定义了规则)来为create操作在同一个控制器(当前视图在in)中找到路由。

否则,它通常与路径助手一起使用,将路径作为字符串返回。当您手动指定字符串时,它将直接用作路径。大多数情况下,这是,而不是您想要的。所有路径帮助程序都可以通过调用rake routes找到。对于一个赤裸裸的应用程序,我拼凑了一个测试,这是我得到的:

代码语言:javascript
复制
Prefix Verb URI Pattern Controller#Action
  root GET  /           application#index

这意味着您有root_pathroot_url (Prefix提示)方法,它们将路径'/‘路由到ApplicationController,action index。如果我在同一条道路上接受一个帖子(上面的表格上说我没有),我会写这样的:

代码语言:javascript
复制
form_tag(root_path) # parentheses are optional, it's Ruby!

PS:将任何东西路由到ApplicationController上都是错误的做法。所以,是的,这是一个不切实际的例子,尽管如此,它解释了这一切的意义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27078713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档