首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails -通过ajax显示索引和显示操作的结果。

Rails -通过ajax显示索引和显示操作的结果。
EN

Stack Overflow用户
提问于 2011-05-17 23:23:30
回答 2查看 4.5K关注 0票数 8

我有一个非常简单的Post资源,有两个动作,索引和显示。我的模板包含一个侧边栏,上面有指向每个前一篇文章的链接。我希望侧栏链接通过ajax显示其内容(即“显示”操作的结果)。

我知道有很多极好 嘟嘟声向您展示如何创建一个使用ajax提交的表单,但是这次我想使用它来显示我的索引的内容,并显示没有页面引用的操作。

。对于如何做到这一点,是否有合适的教程给出建议呢?

我估计我需要创建一个show.js.erb文件,并告诉我的索引操作来响应js,但是我有点被困在后面了。我不太知道在控制器的表演动作或show.js.erb里放什么--这有点难以想象我需要做什么

PS -使用rails 3.0.7,jquery-1.5

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-18 05:10:45

完成这个任务,最后很简单。

步骤1 -向侧栏中的链接添加:remote => true

代码语言:javascript
运行
复制
#application.html.haml
%nav#sidebar
  - for post in @posts
    = link_to post.title, post_path, :remote => true
%div#main
    = yield

步骤2 -告诉您的控制器在显示动作上响应JS

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
# _post.html.haml
%article.post
  = sanitize post.body

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

代码语言:javascript
运行
复制
# show.js.erb
$("#main").html("<%= escape_javascript(render @post) %>");

现在,所有的内容都通过ajax传递,并且运行良好。

票数 10
EN

Stack Overflow用户

发布于 2011-05-17 23:35:15

我手边没有一个完整的答案,因为我对这件事也比较陌生。

但是,我首先要看一下JQuery的get()方法。您应该能够使用它来调用索引或显示方法。这些方法应该返回要在页面的非侧栏部分显示的html。您可以使用get()的回调处理程序将该HTML放入页面上适当的div中。

抱歉,这有点模糊,但如果你玩这个,我敢打赌你会弄清楚的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6038281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档