没有这样的列:user_id错误导轨朋友的分页

时间:2013-02-25 20:40:54

标签: ruby-on-rails

我有一个拥有很多朋友的用户模型。我正在尝试对朋友进行分页,但我收到的没有这样的列错误。解决方案似乎在这里得到了解答Rails, SQLException: no such column但我只是不明白这个答案。

有人可以帮我解释错误以及如何解决问题吗?

在我的home.html.erb

<div class="span8">
    <ol class="friends">
            <%= render @friends %>
        </ol>
        <%= will_paginate @friends %>
</div>

在我的_friends partial:

<li>
    <span class="friendname"><%= friend.name %></span>
    <span class="friendid"><%= friend.friendid %></span>
</li>

控制器

def home
    @friends = current_user.friends.paginate(page: params[:page])
end

Current_user在sessions_helper中定义为:

def current_user
    @current_user ||= User.find(session[:user_id]) if session[:user_id]
end

朋友模特

class Friend < ActiveRecord::Base
    attr_accessible :friendid, :name, :uid
    belongs_to :user
    validates :uid, presence: true
    validates :friendid, presence: true, uniqueness: true
end

用户模型

class User < ActiveRecord::Base
   attr_accessible :name, :provider, :uid
   has_many :friends, dependent: :destroy
   validates :uid, presence:true, uniqueness:true
   .
   .
   .
end

2 个答案:

答案 0 :(得分:0)

您应该将名为user_id的列添加到表中。为此,您必须创建迁移并运行它。

答案 1 :(得分:0)

如果有人遇到这个问题,朋友模型正在寻找user_id作为关联两个模型的关键。您可以通过键入self.primary_key = 'name of column'在任何模型中设置主键,然后将列设置为在foreign_key=>'name of column from second model'的第二个模型中查找。