如何在rails中运用ajax ?

Rails 应用开发笔记(十)

在本应用里,哪些地方需要用到 Ajax 技术呢?

  • 收藏和点赞功能;
  • 评论功能;
  • ‘我的主页’中的部分内容的显示(我的文章,我的收藏等);
  1. app/views/favorites/_favorite_link.html.erb 中
    发起一个 Ajax 的请求,只需要在 link_to 中添加 remote: true 这个参数,点击链接的时候,发往控制器的就是 Ajax 请求,使用 Javascript 处理:

<%= link_to favorites_path(article_id: @article.id), method: :post, remote: true do %>

  1. 点击收藏链接后,POST 请求被 FavoritesController 的 create 方法作为 JS 来处理:
    class FavoritesController < ApplicationController def create @article=Article.find(params[:article_id]) current_user.favorites.create(article_id:params[:article_id]) render :favorite end def destroy favorite = Favorite.find(params[:id]) @article = favorite.article favorite.destroy render :favorite end end
  2. create 方法执行完毕后,会寻找合适的模版来渲染,新建一个 favorite.js.erb
    视图文件,编写在客户端执行的 JS 代码:
    $("#favorite").html("<%= escape_javascript(render partial: 'favorite_link') %>");

这是一段 jQuery 代码,意思是获取第一个匹配 id="favorite"
的元素,设其元素的 html 内容为渲染的 favorite_link 页面。

  1. app/views/articles/show.html.erb
    <%= render 'favorites/favorite_link' %>

jQuery 会根据 id 找到这段代码,并替换其中的内容。
这样一来,我们就通过 Ajax 技术实现了局部更新。

你可能感兴趣的:(如何在rails中运用ajax ?)