У меня есть модель пользователя, в которой много друзей. Я пытаюсь разбивать страницы на друзей, но я получаю такую ошибку столбца. На решение, как представляется, ответят Rails, SQLException: no such column, но я просто не понимаю этого ответа.нет такой колонки: user_id error rails pagination of friends
Может кто-нибудь, пожалуйста, помогите мне объяснить, что не так, и как это исправить?
в моем home.html.erb
<div class="span8">
<ol class="friends">
<%= render @friends %>
</ol>
<%= will_paginate @friends %>
</div>
в моем _friends частичного:
<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
Почему требуется даже столбец user_id? –
"принадлежит_to: пользователь" Итак, у вас должен быть user_id столбец в друге. http://guides.rubyonrails.org/association_basics.html – AKovtunov
Благодарю вас за ссылку. Исходя из этого, будет ': foreign_key =>« uid », : association_foreign_key =>« uid »' в моей модели пользователя исправить мою ошибку? Я предполагаю, что это подключает uid из модели пользователя (внешний ключ) к uid из модели моего друга (ассоциативный внешний ключ). Это правильно? –