ruby-on-rails – Rails – 通过ajax显示索引和show动作的结果

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails – 通过ajax显示索引和show动作的结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单的Post资源,有两个动作,索引和显示.我的模板包含一个侧栏,其中包含指向每个帖子的链接.我希望侧边栏链接通过ajax显示内容(即“show”操作的结果)

我知道有很多excellent tuts向您展示如何创建一个用ajax提交的表单,但这次我想用它来显示我的索引的内容显示没有页面引用的动作

.是否有任何体面的教程提供如何做到这一点的提示

我想我需要创建一个show.js.erb文件,并告诉我的索引操作响应js但我有点陷入困境.我不知道在控制器的show动作或show.js.erb中放什么 – 想象我需要做什么有点困难

PS – 使用rails 3.0.7,jquery-1.5

解决方法

有了这个工作,它最终非常简单.

第1步 – 添加:remote =>对侧栏中的链接为true

  1. #application.html.haml
  2. %nav#sidebar
  3. - for post in @posts
  4. = link_to post.title,post_path,:remote => true
  5. %div#main
  6. = yield

第2步 – 告诉你的控制器在show动作上回应JS

  1. def show
  2. @post = Post.find(params[:id])
  3. @posts=Post.all # needed for sidebar,probably better to use a cell for this
  4. respond_to do |format|
  5. format.html # show.html.erb
  6. format.js # show.js.erb
  7. end
  8. end

第3步 – 创建_post.html.haml

  1. # _post.html.haml
  2. %article.post
  3. = sanitize post.body

第4步 – 创建show.js.erb并将#main div中的html替换为_post partial(我们在步骤3中创建)的内容

  1. # show.js.erb
  2. $("#main").html("<%= escape_javascript(render @post) %>");

现在所有内容都通过ajax传递,并且工作正常.

猜你在找的Ruby相关文章