【问题标题】:acts_as_votable gem likes all the posts on page in railsact_as_votable gem 喜欢 rails 页面上的所有帖子
【发布时间】:2017-06-15 22:44:35
【问题描述】:

让我解释一下我的意思,重点是我在我的 rails 应用程序中使用acts_as_votable gem 并且它可以正常工作,问题是我正在使用 ajax 并且我正在使用它来喜欢我的索引页面中的单个帖子。我用代码解释一下

这是我的@confessions 控制器实例变量,拥有所有投票权

 @confessions = Confession.where(amitian_id: ids).order('created_at DESC')

现在这是我显示所有帖子的视图

  -@confessions.each do |c|
  # code  
  =link_to pluralize(c.get_upvotes.size,"Like"),like_confession_path(c) , method: :get,remote: true , class: 'like'
  =link_to pluralize(c.get_downvotes.size,"Dislike"),dislike_confession_path(c) , method: :get,remote: true ,class: 'dislike'
  end

嗯,到目前为止,我可以使用 'c' 变量来引用单个帖子.. 但在我的 ajax 脚本中,我有类似的东西

  $('.like').html('<%=  pluralize(@confessions.get_upvotes.size,"Like") %>');
  $('.dislike').html('<%=  pluralize(@confessions.get_downvotes.size,"Dislike") %>');

现在很明显,这将像所有帖子变量@confessions 一样......我如何编写脚本使其像帖子用户点击一样 我想我必须使用 this 或 self 关键字,但我不确定如何.. 帮助 plz

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rubygems


    【解决方案1】:

    将供词块移动到单独的部分。然后将该部分包装在一个div中。然后在您的 ajax 脚本中,您可以重新加载部分。

    查看:

    <div id=confessions>
      <%= render 'confessions' %>
    </div>
    

    阿贾克斯

    $('#confessions').html("<%= escape_javascript(render 'confessions') %>")
    

    另外,您确定要发出 GET 请求来表示喜欢/不喜欢吗?我认为您应该在这里发出 POST 请求。

    【讨论】:

    • 问题不在视图中。它是我需要参考的 ajax 即使我制作了一个单独的控制器,我也将如何设置@confessions 给你点击的忏悔用户我不能使用 c .each 在 AJAX 中
    • 它在 q 中
    • 您实际上是在哪里打电话来点赞唱片?
    • 我编辑看到..问题是,在我的 ajax 中,它在每个帖子上都显示一个喜欢,因为我的 ajax 只是刷新了喜欢和不喜欢的数量。 .立即查看代码
    猜你喜欢
    • 2017-10-14
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多