为什么我在通过控制器索引操作时无法通过rails执行AJAX?

时间:2014-02-03 22:57:37

标签: javascript ruby-on-rails ajax

这是我第一次在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请求?

1 个答案:

答案 0 :(得分:0)

我上面所做的是绝对正确的,应该是路由到js文件的正确方法。这实际上是一个初始化模型对象课程的问题,与上面的代码无关(我的模型名称与课程有一个小的错字不匹配)。 测试ajax比使div消失更好的方法是使用console.log(“我在:views / courses / index.js.erb”);或警报(“我在:views / courses / index.js.erb”);正如约翰在上述评论中提到的那样。