Jquery 页面不显示rails中ajax调用后的更新信息
我有rails 3.1,当我使用ajax进行删除操作时,页面在没有手动刷新的情况下不会显示更新的内容 奇怪的是,所有的.js.erb代码似乎都正常启动。我甚至试着在destroy.js.erb中放一个简单的page.alert('hi'),但删除后我没有收到任何警报。我看到一些地方提到在视图中为ajax添加“script”标记以使jquery工作,但没有最新的教程提到这一点。我将感谢你的帮助 以下是我在服务器日志中看到的内容:Jquery 页面不显示rails中ajax调用后的更新信息,jquery,ruby-on-rails,ajax,ruby-on-rails-3,unobtrusive-javascript,Jquery,Ruby On Rails,Ajax,Ruby On Rails 3,Unobtrusive Javascript,我有rails 3.1,当我使用ajax进行删除操作时,页面在没有手动刷新的情况下不会显示更新的内容 奇怪的是,所有的.js.erb代码似乎都正常启动。我甚至试着在destroy.js.erb中放一个简单的page.alert('hi'),但删除后我没有收到任何警报。我看到一些地方提到在视图中为ajax添加“script”标记以使jquery工作,但没有最新的教程提到这一点。我将感谢你的帮助 以下是我在服务器日志中看到的内容: Started DELETE "/categories/35" fo
Started DELETE "/categories/35" for 127.0.0.1 at 2011-12-19 12:58:15 -0500
Processing by CategoriesController#destroy as JS
Parameters: {"id"=>"35"}
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = 5 LIMIT 1
Category Load (0.3ms) SELECT "categories".* FROM "categories" WHERE "categories"."user_id" = 5 AND "categories"."id" = ? LIMIT 1 [["id", "35"]]
SQL (0.5ms) DELETE FROM "categories" WHERE "categories"."id" = ? [["id", 35]]
Rendered categories/destroy.js.erb (0.5ms)
Completed 200 OK in 161ms (Views: 30.7ms | ActiveRecord: 3.2ms)
以下是我在生成的html页面输出页面源代码中看到的内容:
...
<tr id = "category_35">
<td>High-end products</td>
<td class="deletebutton"><a href="/categories/35" data-confirm="Are you sure?" data-method="delete" data-remote="true" rel="nofollow">Delete</a></td>
</tr>
<tr id = "category_36">
<td>Economy products</td>
<td class="deletebutton"><a href="/categories/36" data-confirm="Are you sure?" data-method="delete" data-remote="true" rel="nofollow">Delete</a></td>
</tr>
在类别_controller.rb中:
def index
@categories = current_user.categories.all
respond_to do |format|
format.html # index.html.erb
format.json
format.js
end
end
def destroy
@category.destroy
respond_to do |format|
format.html { redirect_to categories_url }
format.js {
render :template => 'categories/destroy.js.erb', :layout => false
}
end
end
在app/views/categories/index.html.erb中
<h2>Categories</h2>
<table name="categories_list">
<%= render "categories_list" %>
</table>
<br />
类别
在部分_categories_list.html.erb中
<% @categories.each do |category| %>
<tr id = "<%= dom_id(category)%>">
<td><%= category.name %></td>
<td class="deletebutton"><%= link_to 'Delete', category, confirm: 'Are you sure?', method: :delete, :remote => true %></td>
</tr>
<% end %>
正确%>
好的,为了防止有人无意中发现这个问题,我想与大家分享解决方案。有三件事很重要:
我必须做的另一项更改是禁用布局格式副本。否则,该演示将是彻底的。我仍在研究如何处理js调用的错误条件。您的ajax调用看起来如何?我还没有编写任何单独的ajax调用代码。我用的是不引人注目的方法。如您所见,我将:remote=>true放在delete按钮上。这有用吗?@3nigma,我需要在application.js中添加任何设置代码吗?我看到一些老教程提到了ajax设置,但是我们需要最新的rails 3.1吗?我不了解rails,所以帮不了你
<h2>Categories</h2>
<table name="categories_list">
<%= render "categories_list" %>
</table>
<br />
<% @categories.each do |category| %>
<tr id = "<%= dom_id(category)%>">
<td><%= category.name %></td>
<td class="deletebutton"><%= link_to 'Delete', category, confirm: 'Are you sure?', method: :delete, :remote => true %></td>
</tr>
<% end %>