Неправильные сообщения пользователя отображаются. (Подписчик и подписчик)

Я пытаюсь отобразить сообщения пользователей, на которых я подписан. Однако по какой-то причине в моем потоковом индексе отображаются сообщения пользователей, которые меня подписали. Как отображать сообщения пользователей, на которых я подписан, а не наоборот? Заранее спасибо.

Модель пользователя

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
Другие вопросы по тегам