gpt4 book ai didi

javascript - respond_to 和 redirect_to 未按预期工作

转载 作者:行者123 更新时间:2023-12-03 10:44:08 25 4
gpt4 key购买 nike

我有一个使用 form_for 和 remote: true 设置的表单。

<%= form_for(@vocab, url: user_vocab_path(@user, @vocab), remote: true)  do |f| %>

正如预期的那样,vocab Controller 中的相应更新操作将请求作为 JS 处理:

Processing by VocabsController#update as JS

然后神秘的事情发生了。在有效数据的情况下,我想重定向用户。使用标准 HTML 请求。我猜到了。像这样应该可以工作,但事实并非如此:

def update
@user = current_user
@vocab = @user.vocabs.find(params[:id])

respond_to do |format|
format.js { redirect_to home_user_path(@user), format: 'html' }
end
end

UsersController 中的 home 操作也将请求​​作为 JS 处理。带或不带重定向中指定的格式。可以吗?解释一下为什么?

我阅读了所有 Rails 指南和 API,但没有从中得到任何东西。

最佳答案

看起来您正在尝试使用 html 文件响应 js 请求。我认为您基本上希望远程表单具有非远程行为(重定向)。因此,将 format.js 更改为 format.html 并删除 remote: true 应该是一个解决方案。如果您想进行前端重定向(这意味着必须发送另一个请求),您可以尝试使用

format.js { 内联渲染:“window.location.href = '#{home_user_path(@user)}'”}

关于javascript - respond_to 和 redirect_to 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28630789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com