为啥 button_to 不能使用方法: :put with slim in rails

Posted

技术标签:

【中文标题】为啥 button_to 不能使用方法: :put with slim in rails【英文标题】:why is button_to not working with method: :put with slim in rails为什么 button_to 不能使用方法: :put with slim in rails 【发布时间】:2022-01-14 11:00:14 【问题描述】:

我想用表情符号触发 put 方法,但 button_to 不适用于 slim in rails

我有以下:

 = button_to vote_backend_session_path(@session.id, emoji: emoji), method: :put, remote: true, class: "btn btn-vote btn-xs bg-dark border-white hover-primary" do
      i.material-icons.align-middle. #emoji.to_s
      span.align-middle.text-white.ms-2 = @session.total(emoji)

它在开发者控制台中输出以下内容:

所以每次发布操作被触发并且我的控制器说它找不到指定的路线。

我试图只在开发者控制台中进行更改,但随后它触发了GET 而不是PUT

我看了几个关于button_to的问题:

https://coderedirect.com/questions/280885/rails-button-to-applying-css-class-to-button 添加 并没有改变任何东西 Rails 'button_to' is not working with 'send_file' method 将它与method: 'get' 一起使用没有效果。 Nested icons and Rails' link_to or button_to are not working with SLIM 在路径前放置图标会出错,而缩进第二个块会产生奇怪的输出

我也查看了 API 文档 here 并没有找到解决方案。

那么在我的情况下,如何解决这个问题并将 button_to 与 rails 一起使用?

【问题讨论】:

【参考方案1】:

您的按钮类型是submit,它将触发表单提交其字段

它不应该在表单标签内 您可以使用 CSS 技术使其看起来像在表单中

【讨论】:

您能否进一步说明您的意思是 css 技术,您认为使用 link_to 可能是更好的方法吗?由于 button_to 创建了表单。我尝试使用它,因为在某些情况下,我的投票操作会创建投票类的新实例 我认为这不是问题,因为当我在路由中更改为 post :vote 时,一切正常 是的,使用 link_to 更好,你可以忽略我上面说的 CSS 技术(样式)

以上是关于为啥 button_to 不能使用方法: :put with slim in rails的主要内容,如果未能解决你的问题,请参考以下文章

在 button_to 中使用 :method => delete 的目的是啥?

http中的put,delete等请求为啥不安全

无法使用link_to或button_to rails访问嵌套路由

为啥我不能更新 laravel 中的字段?

MailChimp:为啥带有 javascript 的 PUT 方法返回“使用 PUT 插入或更新列表成员”

为啥 HashMap 和 Hastable 的 put 方法有区别?