Неправильные сообщения пользователя отображаются. (Подписчик и подписчик)
Я пытаюсь отобразить сообщения пользователей, на которых я подписан. Однако по какой-то причине в моем потоковом индексе отображаются сообщения пользователей, которые меня подписали. Как отображать сообщения пользователей, на которых я подписан, а не наоборот? Заранее спасибо.
Модель пользователя
has_many :following, :through => :relationships, :source => :followed
has_many :subscribed, class_name: "Relationship", foreign_key: "follower_id"
Почтовая модель
scope :subscribed, ->(following) { where user_id: following }
Модель отношений
class Relationship < ActiveRecord::Base
belongs_to :follower, class_name: "User"
belongs_to :followed, class_name: "User"
validates :follower_id, presence: true
validates :followed_id, presence: true
has_many :followed_users, through: :relationships, source: :followed
#fields id | user_id | follower_id | created_at | updated_at
belongs_to :user
end
Контроллер потока
class StreamController < ApplicationController
def index
@posts = Post.subscribed current_user.following
end
end
Индекс потока
<div class="page-header">
<center><strong><h1> Stream Page </h1></strong></center>
</div>
<div id="posts" class="transitions-enabled">
<% @posts.each do |post| %>
<div class="box panel panel-default">
<%= link_to image_tag(post.image.url(:medium)), post %>
<div class="panel-body">
<%= post.description %><br/>
<strong><%= post.user.name if post.user %></strong>
<% end %>
</div>
<% end %>
</div>
<% end %>
</div>
1 ответ
Проблема будет с ассоциацией, которую вы называете
-
ассоциации
Вы используете мой код (это здорово!!) - я думаю, проблема будет в том, как вы вызываете relationship
данные ассоциации
Вы сможете сделать это:
#app/controllers/posts_controller.rb
Class PostsController < ApplicationController
@posts = Post.subscribed current_user.followed
end