Ruby on rails 相同的请求在controller和helper(Rails)中的工作方式不同

Ruby on rails 相同的请求在controller和helper(Rails)中的工作方式不同,ruby-on-rails,ruby,activerecord,helper,Ruby On Rails,Ruby,Activerecord,Helper,我面临一个奇怪的问题: 我有一个餐桌友谊: t.integer "user_id" t.integer "friend_id" 我有两种型号:user.rb和friendy.rb 友谊网: belongs_to :user belongs_to :friend, :class_name => "User" User.rb: has_many :friendships has_many :friends, :through => :friendships has_many :

我面临一个奇怪的问题:

我有一个餐桌友谊:

t.integer  "user_id"
t.integer  "friend_id"
我有两种型号:user.rb和friendy.rb

友谊网:

belongs_to :user
belongs_to :friend, :class_name => "User"
User.rb:

has_many :friendships
has_many :friends, :through => :friendships

has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id"
has_many :inverse_friends, :through => :inverse_friendships, :source => :user

为什么如果我使用user.inverse\u friends在友谊控制器和友谊助手中为我提供不同的数据?如果您有任何想法,我将不胜感激。

您是说user.friends和user.inverse\u friends、user.inverse\u friends和user.friends会给您带来不同的结果吗?没错,根据友谊表中的数据,您是否可以通过在日志中提供user.inspect来检查controller和helper中使用的用户对象是否相同?我必须问-到底是什么
inverse\u friends
?00是否要实现对称关联?或者你真的想过与你不是朋友的人成为朋友吗?@Abhi是的,这是同一个目标。实际上,我使用的是当前用户,在任何地方都是相同的。