如何在upvote之后从表中显示下一个对象而不重新加载页面

时间:2015-08-29 16:53:27

标签: ruby-on-rails ruby

我对编程还很陌生,所以我不确定我在寻找什么,而且我正在使用Ruby on Rails。

我想做什么:

我有一个root_path,我想在posts表中显示一个帖子。然后,当用户点击upvote或downvote按钮时,我想显示我的表中的下一个图像(可能是一个随机队列)而不再重新加载页面。

我希望用户能够以这种方式对整个帖子表进行投票,一次看一个帖子。

Rails中有什么东西可以让我做我想做的事吗?

1 个答案:

答案 0 :(得分:1)

原则上,实现目标的最简单方法是:

  • 查看:创建可在视图中或从js
  • 呈现的“随机”部分
  • 查看:使用id div包裹您的帖子,以便以后轻松更换
  • 查看:在您使用remote: true的upvote或downvote链接中,以便您的请求以javascript格式处理
  • 路由:添加与您的控制器操作相对应的upvotedownvote路由(哪个控制器将取决于投票是否捆绑到帖子模型中,或者是否分开)
  • 控制器:让你有一个正确的respond_to块来处理hte javascript请求(或者根据你的偏好来回复)
  • 查看:为javascript创建“next_post”视图,例如next_post.js.erbnext_post.js.haml
  • 查看:在您的下一个帖子js视图中,渲染下一篇文章的部分内容以替换现有帖子,例如$('#random-post').replaceWith("<%= j render(:partial => 'posts/random', :locals => {:post => @post}) %>");

这是最广义的。试一试,亲自尝试一下,如果您遇到困难,请回过头来用您的代码示例发布一个特定问题。祝你好运!