Я застрял в последнем упражнении в книге Хартлта 12.3.4, где вы определяете фид состояния для себя и пользователей, которых вы следите. Я новичок Rails, поэтому просто дайте мне знать, если мне нужно опубликовать дополнительную информацию.Работа над рельсами 3 учебник от hartl и застрял на 12.3.4 - Новый фид состояния
Когда я заканчиваю журнал разработки, я вижу, что will_paginate запускает SQL, чтобы собрать начальные записи, и начальная страница выглядит хорошо, когда она подана. Когда я нажимаю ссылку, чтобы перейти на любую другую страницу, она появляется. Will_paginate не запускает SQL для получения большего количества данных из базы данных, так как следующая страница работает нормально, но данных нет.
В журнале разработки также нет новых записей, и, возможно, я ошибаюсь, но я думаю, что это указывает на то, что will_paginate не попал в базу данных.
Я попытался включить все соответствующие фрагменты кода ниже. Счастлив отправить что-нибудь, что отсутствует.
Вот мой pages_controller.rb
def home
@title = "Home"
if signed_in?
@micropost = Micropost.new
@feed_items = current_user.feed.paginate(:page => params[:page])
end
end
Вот мой user.rb
def feed
Micropost.from_users_followed_by(self)
end
Вот мой microposts.rb
scope :from_users_followed_by, lambda { |user| followed_by(user) }
private
def self.followed_by(user)
following_ids = %(SELECT followed_id FROM relationships
WHERE follower_id = :user_id)
where("user_id IN (#{following_ids}) OR user_id = :user_id",
:user_id => user)
end
ПРИМЕЧАНИЕ: В видео-учебник (глава 12, время = 02:06:00) и книга (стр. 517, листинг 12.44). Харлит использует переменную «follow_ids» вместо «follow_id» s». В исходном примере кода, который вы можете загрузить со своего сайта, имя переменной «follow_ids», и я пробовал это в обоих направлениях, но он терпит неудачу.
Нижняя строка - журнал регистрации dev will_paginate извлекает первую партию данных, но никогда не возвращается к базе данных для получения дополнительных данных.
Может ли кто-нибудь предложить, на что я могу взглянуть, чтобы решить мою проблему?
Большое спасибо.