这是我第一次在 Ruby on Rails 上尝试 AJAX 请求。我关注了RoR guide提出这个脚本。我的代码如下。
类(class) Controller
def index
@course = Course.all
respond_to do |format|
format.html{}
format.js {}
end
end
View /类(class)/index.js.erb
$('#dummy_div').hide();
views/courses/Trial.html.erb(从我调用 AJAX/索引 Controller 的位置查看)
<body>
<%= form_for(Course.new, :method => :get, remote: true) do |f| %>
<%= submit_tag "Search", :name => 'course_list' %>
<%end%>
<div id = "dummy_div" style = "width:100px; height: 100px;background-color:black;"></div>
</body>
我的预期结果是,一旦我提交了搜索功能,div 就会消失。然而,这并没有发生。我没有放入嵌入式 ruby,因为我只是首先测试纯 JS 是否有效。我的目的是稍后放入 erb (只是为了明确我正在针对 AJAX 测试它)。为什么index.js.erb文件中的JS没有被执行?
此外,如何在 Ruby on Rails 中调试 AJAX 请求?
最佳答案
我上面所做的绝对正确,应该是路由到js文件的正确方法。这实际上是初始化模型对象类(class)的问题,与上面的代码无关(我与模型名称 - 类(class)有一个小的拼写错误)。 比让 div 消失更好的测试 ajax 的方法是使用 console.log("i'm at:views/courses/index.js.erb");或警报(“我在:views/courses/index.js.erb”);正如约翰在上面的评论中提到的。
关于javascript - 为什么我在执行 Controller 索引操作时无法通过 Rails 执行 AJAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21539558/