我有一个非常简单的Post资源,有两个动作,索引和显示。我的模板包含一个侧边栏,上面有指向每个前一篇文章的链接。我希望侧栏链接通过ajax显示其内容(即“显示”操作的结果)。
我知道有很多极好 嘟嘟声向您展示如何创建一个使用ajax提交的表单,但是这次我想使用它来显示我的索引的内容,并显示没有页面引用的操作。
。对于如何做到这一点,是否有合适的教程给出建议呢?
我估计我需要创建一个show.js.erb文件,并告诉我的索引操作来响应js,但是我有点被困在后面了。我不太知道在控制器的表演动作或show.js.erb里放什么--这有点难以想象我需要做什么
PS -使用rails 3.0.7,jquery-1.5
发布于 2011-05-18 05:10:45
完成这个任务,最后很简单。
步骤1 -向侧栏中的链接添加:remote => true
#application.html.haml
%nav#sidebar
  - for post in @posts
    = link_to post.title, post_path, :remote => true
%div#main
    = yield步骤2 -告诉您的控制器在显示动作上响应JS
def show
  @post = Post.find(params[:id])
  @posts=Post.all # needed for sidebar, probably better to use a cell for this
  respond_to do |format|
    format.html # show.html.erb
    format.js # show.js.erb
  end
end步骤3 -创建_post.html.haml
# _post.html.haml
%article.post
  = sanitize post.body步骤4 -创建show.js.erb并将#main div中的html替换为_post分部的内容(我们在步骤3中创建)
# show.js.erb
$("#main").html("<%= escape_javascript(render @post) %>");现在,所有的内容都通过ajax传递,并且运行良好。
发布于 2011-05-17 23:35:15
我手边没有一个完整的答案,因为我对这件事也比较陌生。
但是,我首先要看一下JQuery的get()方法。您应该能够使用它来调用索引或显示方法。这些方法应该返回要在页面的非侧栏部分显示的html。您可以使用get()的回调处理程序将该HTML放入页面上适当的div中。
抱歉,这有点模糊,但如果你玩这个,我敢打赌你会弄清楚的。
https://stackoverflow.com/questions/6038281
复制相似问题