我看到其他一些人也问过这个问题,但我发现没有一个人得到满意的答案。
为什么railslink_to
总是使用method :get
,即使已经应用了一些其他方法,但是当您将link_to
更改为button_to
时,它开始工作?
以下面一行为例:<%= link_to "Log out", destroy_user_session_path, method: :delete, class:"link"%>
vs<%= button_to "Log out", destroy_user_session_path, method: :delete, class:"link"%>
所有的rails文档告诉我method: :post
应该工作。我甚至从那里复制了代码示例并编辑它以适应我的代码,但它仍然不起作用。虽然button_to是一个足够的解决方案,但让我的一半链接是链接,另一半按钮伪装成链接是很烦人的。
我使用的是rails 7.
谢谢。
更新:进一步搜索,我发现这个:https://github.com/rails/rails/issues/44185,它有一个解决方案,为我工作。
基本上,method
已被弃用,新的方法是使用
data: { turbo_method: :delete, turbo_confirm: "Are you sure?" }
。如果这不起作用,请尝试运行命令
rails importmap:install
rails turbo:install stimulus:install
。
至少对我有用。