Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何检查当前用户是否阻止目标用户作为跟随者_Ruby On Rails_Ajax_Activerecord_Acts As Follower - Fatal编程技术网

Ruby on rails 如何检查当前用户是否阻止目标用户作为跟随者

Ruby on rails 如何检查当前用户是否阻止目标用户作为跟随者,ruby-on-rails,ajax,activerecord,acts-as-follower,Ruby On Rails,Ajax,Activerecord,Acts As Follower,我无法检查当前用户是否正在阻止目标用户。我正在尝试为“阻止/取消阻止”功能创建一个切换按钮。我不知道人们是如何做到这一点的,除非他们的解决方案不支持AJAX。如何检查当前用户是否在跟踪目标@user对象 _block_user.html.erb <% # unless @user == current_user %> <% **if current_user.blocking?(@user)** %> <%= link_to(unblock_user_p

我无法检查当前用户是否正在阻止目标用户。我正在尝试为“阻止/取消阻止”功能创建一个切换按钮。我不知道人们是如何做到这一点的,除非他们的解决方案不支持AJAX。如何检查当前用户是否在跟踪目标@user对象

_block_user.html.erb

<% # unless @user == current_user %>
  <% **if current_user.blocking?(@user)** %>
    <%= link_to(unblock_user_path(@user), :remote => true, :class => 'btn btn-outline-danger') do %>
      <i class="fa fa-stop-circle"></i>
      Unblock
    <% end %>
  <% else %>
    <%= link_to(block_user_path(@user) ,:remote => true, :class => 'btn btn-outline-primary') do %>
      <i class="fa fa-play-circle"></i>
      Block
    <%end%>
  <% end %>
<% # end %>

true,:class=>'btn btn outline danger')do%>
解除封锁
true,:class=>“btn btn大纲主要”)do%>
块

如果它是一个带有AJAX的按钮,那么你必须有类似的东西

<% if (!current_user.liked? @user) %>

        <%= link_to like_user_path(@user), class:"like-btn", method: :put, remote: true do %> 
        <i class="fa fa-stop-circle"></i>
        <% end %>  

    <% else %>

        <%= link_to like_user_path(@user), class:"like-btn", method: :put, remote: true do %> 
        <i class="fa fa-play-circle"></i>
        <% end %> 

 <% end %>

我发现用户是否被阻止的方法。(在没有当前用户检查器的情况下进行测试)


true,:class=>'btn btn outline danger')do%>
解除封锁
true,:class=>“btn btn大纲主要”)do%>
块

看起来不错。我使用了不同的方法来获取显示正确状态的按钮。我将发布解决方案。
<% if current_user.liked? @user %>
     document.getElementsByClassName('like-btn')[0].className = "like-btn liked";
<% else %>
     document.getElementsByClassName('like-btn')[0].className = "like-btn disliked";
<% end %>
def like
    if !current_user.liked? @user
      @user.liked_by current_user
    elsif current_user.liked? user
      @user.unliked_by current_user 
    end
    respond_to do |format|
        format.html { redirect_back(fallback_location: root_path) }
        format.js 
        end
  end 
<% #unless @user == current_user %>
<div id="block_user<%= @user.id %>">
  <% if current_user.blocks.include?(@user) %>
    <%= link_to(unblock_user_path(@user), :remote => true, :class => 'btn btn-outline-danger') do %>
      <i class="fa fa-stop-circle"></i>
      Unblock
    <% end %>
  <% else %>
    <%= link_to(block_user_path(@user), :remote => true, :class => 'btn btn-outline-primary') do %>
      <i class="fa fa-play-circle"></i>
      Block
    <% end %>
  <% end %>
</div>
<% # end %>