Rails 关于 Devise 的基本问题

发布于 2024-11-29 12:30:32 字数 286 浏览 2 评论 0原文

在设计中,表单看起来像这样:

form_for(:resource, @resource, :url => edit_user(resource), :html => {:method=> put}) do |f|

但我想知道,它是否必须包含 method =>;放? REST 不是应该已经解决这个问题了吗?

我尝试过使用 form_for(@resource) 但它没有获取编辑用户路径。我想我在这里遗漏了一些东西。任何帮助都会非常有帮助。谢谢!

in devise, the forms look like this:

form_for(:resource, @resource, :url => edit_user(resource), :html => {:method=> put}) do |f|

but I'm wondering, does it have to include method => put? Isn't REST supposed to have taken care of that already?

I've tried using form_for(@resource) but it does not get the edit user path. I think I am missing something here. Any help will be very much helpful. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猛虎独行 2024-12-06 12:30:32

其中一篇 Rails 指南讨论了这,这是一个片段:

Rails 框架鼓励应用程序的 RESTful 设计,
这意味着您将发出大量“PUT”和“DELETE”请求
(除了“GET”和“POST”)。但是大多数浏览器不支持
提交表单时除​​“GET”和“POST”之外的方法。

Rails 通过模拟 POST 上的其他方法来解决此问题
有一个名为“_method”的隐藏输入,它被设置为反映
所需的方法...

您可以使用 :html => 填充此隐藏输入{:方法=> put} 这给了 Rails 一些提示。使用此提示和您提交到 Rails 的 URL 可以确定将表单提交到哪个 Restful 操作。

阅读我链接到的 Rails 指南,之后事情应该会变得更加清晰。

One of there rails guides talks about this, here is a snippet:

The Rails framework encourages RESTful design of your applications,
which means you’ll be making a lot of “PUT” and “DELETE” requests
(besides “GET” and “POST”). However, most browsers don’t support
methods other than “GET” and “POST” when it comes to submitting forms.

Rails works around this issue by emulating other methods over POST
with a hidden input named “_method”, which is set to reflect the
desired method...

You populate this hidden input using :html => {:method=> put} this gives rails a bit of hint. Using this hint and the url you're submitting to rails can work out which of the restful action to submit the form to.

Have a read of that rails guide that I linked to, things should become a lot clearer after that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文