Rails包括当前用户在时间轴中的帖子

时间:2018-02-14 07:27:13

标签: ruby-on-rails sqlite

我有rails项目,其中用户有时间轴,其中包括他/她关注的用户的帖子。 我在Post模型中创建了一个代码:

scope :of_followed_users, -> (following_users) { where user_id: following_users }

所以我可以像这样在PostController中显示帖子:

@posts = Post.where(user_id: @current_user.following)order('created_at DESC').paginate(page: params[:page], per_page: 20)

但问题是我希望用户也能在时间轴上看到他/她的帖子。这样做的最佳做法是什么?我必须先跟随自己吗?我尝试使用user_id: [@current_user.following, @current_user]的数组,但它只显示了current_user的帖子。我怎么能这样做?

非常感谢!

2 个答案:

答案 0 :(得分:1)

尝试以下查询

library(tidyverse)
library(fs)

result <- dir_map(path = 'Data', fun = function(filepath) {
  read_tsv(filepath) %>%
    select(-1) %>%
    rename(Species = Label) %>%
    mutate(Species = sub('.tif$', '', Species)) %>%
    group_by(Species) %>%
    mutate(
      View = seq_along(Species),
      View = letters[View], # a, b, c, etc. instead of 1, 2, 3, etc.
      Station = sub('.txt$', '', basename(filepath))
    )
})

# get rows from second file
result[[2]]

# bind rows from all files
result %>% bind_rows()

答案 1 :(得分:-1)

另一个概念: 为什么你没有为帖子添加动作,这将使帖子的所有者成为关注者以及帖子。

实施例: 用户(x)添加了帖子(Y) 用户(x)是Post(Y)的追随者

当您进入&#39;创建&#39;对帖子采取行动,要求模型处理以下概念。

PostController中:

def create
 if @post.save 
  bla bla bla
 end
end 

发布模型:

after_save :follow_post

private 
def follow_post
 do the follow action 
end