我正在通过构建应用程序学习Rails。我的应用程序工作正常,直到我说这个代码到我的users_controller.rb未定义的方法`友谊'为#<User :: ActiveRecord_Relation:0x007fdd1adb7a00> Rails
def show
@user = User.find(params[:id])
@user = User.order('created_at DESC').paginate(page: params[:page], per_page: 30)
end
def compare
if current_user.profile
@users = User.find_by(id: params[:to].to_i) if params[:to]
@paper_weight_total_user = @users.papers.sum(:paper_weight)
else
redirect_to user_path
end
end
我将此添加到我的users_controller因为当前用户应该能够给他的数据进行比较,对他的朋友数据,如果他打“比较数据”按钮(如下图所示)
的compare_friends_path工作,我能到我的数据进行比较,以选择朋友的数据,但是当我想直接回到‘我的页面’的应用程序,让我这个错误:
undefined method `friendships' for #<User::ActiveRecord_Relation:0x007fdd1adb7a00>
,并说这行代码(do循环)导致错误:
<% @user.friendships.each do |friendship| %>
我user.rb模型
has_many :friendships, dependent: :destroy
has_many :friends, through: :friendships
和我friendship.rb模型
belongs_to :user
belongs_to :friend, :class_name => 'User'
belongs_to :profile
我一直试图弄清楚为什么现在发生这种情况后,我加入了比较选项,但我运气不好....任何人都可以帮助我或帮助解决问题这个。
在此先感谢 大地
你可以发布定义'@ user'的控制器动作吗? – akz92
hi @ akz92我编辑了帖子,现在它已在users_controller.rb中显示动作 – DaudiHell