我有一个拥有很多朋友的用户模型。我正在尝试对朋友进行分页,但我收到的没有这样的列错误。解决方案似乎在这里得到了解答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
答案 0 :(得分:0)
您应该将名为user_id的列添加到表中。为此,您必须创建迁移并运行它。
答案 1 :(得分:0)
如果有人遇到这个问题,朋友模型正在寻找user_id作为关联两个模型的关键。您可以通过键入self.primary_key = 'name of column'
在任何模型中设置主键,然后将列设置为在foreign_key=>'name of column from second model'
的第二个模型中查找。