实际上我有两、三个问题,但这三个问题的核心与标题中所写的相同。但我在描述中明确了我的所有观点
以下是我的问题的说明
Javascript file path => assets/javascript/
js.erb file path => views/customers/index.js.erb
view file name => views/customerS/html.erb
controller name => customers
action name => index
第 1 点
如果我通过我的 javascript 文件(带有提到的路径)对我的客户/索引进行 ajax 调用,那么它会命中 index.js.erb 文件吗?
第 2 点
我们可以使用 js 和 js.erb 文件来执行相同的操作吗?我的意思是“是否可以从 Assets 文件夹中的js文件发送ajax,并在 Controller 操作后说索引方法处理 View 文件夹中index.js.erb文件中的响应?”
第 3 点
假设我们可以处理index.js.erb文件中的响应,那么我们如何/或者是否可以停止发送回js文件中的响应/数据
如果我遗漏了一些相关的要点,请编辑问题并放置它们,以便最大限度的人可以享受知识
另请查看This question如果可以的话请回答
更新
我做了一个小实验,保持与中提到的相同的功能
1 : linked question ,如果 ajax 是通过 js 文件发送的,那么 js.erb 不会执行任何操作,但是如果我使用 :remote => true
进行 ajax 调用,那么它会命中 js.erb 文件。任何解释将不胜感激。要查看 js、 Controller 和 js.erb 中的代码示例,请参阅链接的问题
最佳答案
我认为某些语言障碍导致很难完全理解您的问题,我会尝试回答。
Rails 中 :remote => true
的流程是这样的:
点击 :remote => true 链接 ( foo
) -> 对 Controller 进行 AJAX 调用,请求其执行 foo
-> Controller 执行 foo
中包含的代码操作,然后它将在同一 View 的文件夹中查找名为 foo.js.erb
的文件。并执行该 JS -> 该代码将使用名为 foo.html.erb
的文件更新原始 HTML 页面的部分在同一 View 的文件夹中。
对 assets/javascript/
中包含的 JS 函数的任何调用只会执行调用的JS,无论是否是AJAX。
所以assets/javascript/
= 放置JS代码的地方,而不是放在<script>
中HTML 文件中的标签
:remote => true
= 对特定 Controller 操作的 AJAX 调用,然后呈现类似名称的 .js.erb 文件和 .html.erb 文件以异步更新页面。
关于javascript - 简单ajax和:remote => true In Ruby on Rails的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33051974/