- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 View 中有一个表格:views/uploads/index.html.erb
other code
<div id="uploads_table">
<table class="table table-striped">
<thead>
<tr>
<th>File name</th>
blah
blah
blah
<th>Actions</th>
</tr>
</thead>
<tbody >
<%= render (@uploads) %> <%# partial _upload.html.erb %>
</tbody>
这是部分“_upload.html.erb”
<tr id= "uploads_table_rows">
<td> <%= upload.sourcedata_file_name%></td>
<% path_arr = upload.f_path.split("\/")%>
blah
blah
blah
<%end%>
<td><%= render 'button', :upload => upload%></td>
</tr>
当后台作业运行并且表中的值发生变化时,我尝试更新此表。
为此,我进行了以下设置:1)在我的 upload_controller.rb 中,我有以下方法:
before_action :set_upload, only: [:show, :edit, :update, :destroy]
#refresh uploads table in uploads/index.html.erb
def refresh_table
@uploads = Upload.all
@uploads.each do |u|
if(File.exist?(u.f_path))
puts "File #{u.sourcedata_file_name} exists"
else
puts "File #{u.sourcedata_file_name} has been removed"
u.update!(:status => "-1")
end
end
@uploads = Upload.all
respond_to do |format|
format.js
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_upload
@upload = Upload.find(params[:upload][:id])
end
# Only allow a trusted parameter "white list" through.
def upload_params
params.require(:upload).permit(:id, :sourcedata, :task_id, :status, :f_path, :job)
end
2)在我的 uploads.js.coffee 中我添加了这段代码
$(document).ready ->
# will call refresh_table every 1 second
setInterval refresh_table, 1000
refresh_table = ->
$.ajax url: "/uploads_controller/refresh_table"
3)我使用以下代码添加了一个文件“refresh_table.js.erb”
$('#uploads_table').html("#{escape_javascript(render 'upload', data:@uploads)}");
4)最后我更新了我的路由文件,将此行作为最后一行:
get 'uploads_controller/refresh_table'
我重新启动了服务器并启动了更新表值的后台作业。我在 chrome 中运行了 javascript 控制台,我看到的只是每 1 秒这些行
GET http://localhost:3000/uploads_controller/refresh_table 404 (Not Found)
jquery.js?
body=1:8707
我不确定出了什么问题。我是 AJAX 新手,所以我想知道是否有人可以帮我解决这个问题。谢谢
<小时/>更新:尝试下面发布的解决方案后,这就是我的 paths.rb 的样子:
blah
blah
resource :uploads do
member do
post "parse"
get "refresh_table", to: "refresh_table"
end
end
blah
blah
这是我的 Chrome 浏览器中看到的“网络”选项卡的图像:
控制台选项卡如下所示:
服务器控制台输出:
Started GET "/uploads/refresh_table" for 127.0.0.1 at 2014-01-01 10:24:42 -0500
Processing by UploadsController#show as */*
Parameters: {"id"=>"refresh_table"}
Completed 500 in 1ms
NoMethodError - undefined method `[]' for nil:NilClass:
app/controllers/uploads_controller.rb:89:in `set_upload'
网络预览选项卡:
预览选项卡:
最佳答案
这是你的问题:
$.ajax url: "/uploads_controller/refresh_table"
-> GET http://localhost:3000/uploads_controller/refresh_table 404 (Not Found)
应该是:
$.ajax url: "/uploads/refresh_table"
您的路线应该是:
resources :uploads do
get "refresh_table", to: "refresh_table"
end
<小时/>
Ajax
Ajax 的工作原理如下:
User request -> JS -> Ajax -> Rails
User view <- JS <- Ajax <- Rails
它基本上是一个“伪浏览器”
它接受用户执行的操作/请求(单击链接,在 View 中执行某些操作),然后使用 Javascript 处理该请求
Ajax 被称为 Asynchronous Javascript And XML因为它代表您发送请求。让大多数人感到困惑的是,Ajax 与 Rails 完全脱节,并且必须使用与“普通”浏览器相同的路由结构
最好将其视为传送系统 - 您在客户端的请求将通过 Ajax“传送”到 Rails。但是,就像传送系统一样,您仍然需要知道坐标并有一个要连接的端点
关于javascript - 尝试 AJAXify 这个 Rails 4 方法调用并收到 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20864679/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!