这是我第一次在Ruby on Rails上尝试AJAX请求。我按照RoR guide提出了这个脚本。我的代码如下。
course_controller
def index
@course = Course.all
respond_to do |format|
format.html{}
format.js {}
end
end
视图/课程/ index.js.erb的
$('#dummy_div').hide();
views / courses / trial.html.erb(从我调用AJAX /索引控制器的位置查看)
<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请求?
答案 0 :(得分:0)
我上面所做的是绝对正确的,应该是路由到js文件的正确方法。这实际上是一个初始化模型对象课程的问题,与上面的代码无关(我的模型名称与课程有一个小的错字不匹配)。 测试ajax比使div消失更好的方法是使用console.log(“我在:views / courses / index.js.erb”);或警报(“我在:views / courses / index.js.erb”);正如约翰在上述评论中提到的那样。