【发布时间】:2014-07-30 14:58:48
【问题描述】:
我正在制作一个 reddit 克隆。现在我有一个可以工作的投票系统,但是每次用户投票时它都会刷新页面。我想通过使用 AJAX 来实现这个异步。
让按钮响应 Jquery 确实很难,因为它们会根据用户对帖子的投票方式改变状态。我想出的解决方案是:在 _upvote 部分中有 2 个赞成按钮,在 _downvote 部分中有 2 个反对按钮。每个部分都会有一个投票按钮,当案例已经成立时,它会被激活,再次点击它会破坏它(例如,如果一个帖子已经被点赞了,那么再次点击点赞按钮会破坏它)。部分中的其他按钮将在该按钮尚未使用的情况下被激活(在这种情况下单击该按钮将创建它)。
示例: **** _upvote 部分应包含以下按钮:****
1)create_upvote
2)destroy_upvote
****downvote 部分应包含以下按钮:****
1)create_downvote
2)destroy_downvote
激活哪个按钮取决于控制器。
我的问题是这样的:
1) 从另一个控制器渲染局部视图的实际语法是什么?例如:posts 正在渲染 _post,并且我希望在其中渲染 _upvote 或 _downvote。如何从控制器渲染 _upvote 或 _downvote。同样,我想从控制器渲染这些部分的原因是因为控制器将改变它们的状态。
部分反对
app/views/posts/_downvote.html.erb
部分支持
app/views/posts/_downvote.html.erb
帖子部分
app/views/posts/_post.html.erb
否决控制器
投票控制器
控制器中的第 9 行是我的语法关闭的地方!在 _posts 部分中呈现 _upvote 和 _downvote 部分的语法是什么?谢谢小伙伴们!
【问题讨论】:
-
1) 有多种方式来实现 AJAX。您只需要在应用程序/资产管道中拥有 Jquery 事件处理程序。 2)我提供的代码是预JS实现。我提到了JS来做一个概述。
-
发布代码截图而不是实际代码违反了最新的 SO 准则:stackoverflow.com/help/how-to-ask, meta.stackoverflow.com/questions/285551/…
标签: ruby-on-rails