Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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_Ruby - Fatal编程技术网

Ruby on rails 如何隐藏我已添加为好友的好友?

Ruby on rails 如何隐藏我已添加为好友的好友?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有以下代码。添加好友部分效果很好。但后来我仍然看到“添加朋友”按钮。所以我添加了,就像我写的那样,看起来你正在循环浏览数据库中存在的每一种友谊。您只需要通过当前用户的朋友进行循环 这不仅是一个小得多的列表,而且该列表中的每个成员都已经是朋友,您不必询问是否应该显示“添加朋友”链接 考虑以下几点 首先,我们以稍微不同的方式重申模型: 类连接[“用户一”、“用户二”、“用户三”] irb(主):002:0>users=User.all ... irb(主):003:0>users.size ...

我有以下代码。添加好友部分效果很好。但后来我仍然看到“添加朋友”按钮。所以我添加了,就像我写的那样,看起来你正在循环浏览数据库中存在的每一种友谊。您只需要通过当前用户的朋友进行循环

这不仅是一个小得多的列表,而且该列表中的每个成员都已经是朋友,您不必询问是否应该显示“添加朋友”链接

考虑以下几点

首先,我们以稍微不同的方式重申模型:

类连接
接下来,我们将介绍一些用户:

加载开发环境(Rails 6.0.2.1)
irb(main):001:0>['User One'、'User Two'、'User Three']
...
=>[“用户一”、“用户二”、“用户三”]
irb(主):002:0>users=User.all
...
irb(主):003:0>users.size
...
=> 3
irb(主要):004:0>
然后,我们连接一些用户:

irb(main):004:0>连接。创建(用户:user.first,朋友:user.second)
irb(main):005:0>Connection.create(用户:user.second,朋友:user.first)
irb(main):006:0>Connection.create(用户:user.second,朋友:user.third)
irb(main):007:0>Connection.create(用户:user.third,朋友:user.second)
现在,我们可以这样显示特定用户的朋友:


...

正如我所理解的问题:“在每个用户秀上都有许多“添加朋友” 所以,您有一个user show页面,让它成为@user变量

<% if !current_user.friendships.where(friend_id: @user.id).exists? %>
  <button>Add Friend</button>
<% end %>
将加载所有用户的所有好友,而不仅仅是当前用户的好友

此外,在这个实现中,您需要确保添加好友是对称的,添加好友表后必须有2行

| user_id | friend_id |
|       1 |.        2 |
|.      2 |.        1 |
否则你的朋友就不会知道他是你的朋友。我建议对这两列都编制索引

关于has_Friendly gem:没有使用,但我相信在这种情况下自定义代码会更灵活,更容易自定义

| user_id | friend_id |
|       1 |.        2 |
|.      2 |.        1 |