Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么我的Rails应用程序会重定向到“数据:,”?_Ruby On Rails_Ruby On Rails 4_Ace Editor - Fatal编程技术网

Ruby on rails 为什么我的Rails应用程序会重定向到“数据:,”?

Ruby on rails 为什么我的Rails应用程序会重定向到“数据:,”?,ruby-on-rails,ruby-on-rails-4,ace-editor,Ruby On Rails,Ruby On Rails 4,Ace Editor,因此,当我在Rails 4应用程序中保存一条记录时,就会发生这种情况。以下是一些细节: 我在用电话 数据属性在我的模型或应用程序中不存在 该表单是的标准表单(非远程) 记录确实保存成功,但随后它重定向到这个奇怪的URL 更新的代码是标准的scaffold样板 # PATCH/PUT /pages/1 # PATCH/PUT /pages/1.json def update respond_to do |format| if @page.update(page_params)

因此,当我在Rails 4应用程序中保存一条记录时,就会发生这种情况。以下是一些细节:

  • 我在用电话
  • 数据
    属性在我的模型或应用程序中不存在
  • 该表单是的标准
    表单(非远程)
  • 记录确实保存成功,但随后它重定向到这个奇怪的URL
更新的代码是标准的scaffold样板

# PATCH/PUT /pages/1
# PATCH/PUT /pages/1.json
def update
  respond_to do |format|
    if @page.update(page_params)
      format.html { redirect_to @page, notice: 'Page was successfully updated.' }
      format.json { head :no_content }
    else
      format.html { render action: 'edit' }
      format.json { render json: @page.errors, status: :unprocessable_entity }
    end
  end
end
有人有什么想法吗?可能很简单,但我一辈子都搞不懂这个。让我知道我是否可以分享任何其他相关信息。

在您的特定情况下(您的quickcast中显示的一个),Chrome认为这是一个安全风险,因为您正在提交一个
元素,其中包含使用[Rails'内置]插入页面可呈现内容的javascript异步javascript

要避免这种情况,您可以:

  • 在提交表单之前,使用客户端逻辑去掉包装标签,然后在保存记录之前将其重新添加到服务器上
  • 禁用Rails在此控制器中内置的更新操作ajaxification,以便它通过普通的旧HTML提交
  • 在表单提交和查看显示操作之间添加中间重定向页面

  • 我相信这是因为您的@page
    show
    视图正在呈现转义的HTML和Javascript。Chrome可能有一些启发式方法来分析页面并确定它是什么类型的文档。因为它可能不是以
    开头,所以Chrome假定它是一个带有
    数据:
    协议的数据文件。尝试渲染为字符串并在控制台上打印结果:

    见第4.1.1节


    请使用show view模板、show action和日志从
    render\u到\u string

    更新您的答案,我忘了。。。我录制了一个可以看到的快速播放。您如何设置
    @page
    变量?这可能是因为它不是一个页面类,这会导致第一个
    重定向到
    的页面不知道去哪里?也许这对你有帮助@page=page.find(params[:id])您没有错过var声明吗?@Marc AlexandreBérubé::实例变量正在由before_action筛选器设置,ala:
    before_action:set_page,仅:[:show,:edit,:update,:destroy]
    puts render_to_string @page
    
    data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K