显示上次注销用户后创建的条目

时间:2016-02-09 09:52:17

标签: ruby-on-rails model-view-controller

我被困在这里...... 我的应用程序中有各种各样的关系模型,现在我只想显示用户注销后创建的条目。为此,我的用户模型中有t.datetime“last_active_at”,每次注销都会触及。这很好。

我有项目和用户,可以将用户分配到项目。项目有文件。我只向用户显示他所分配的项目的文档。这很有效。

现在我只想显示用户最后一次注销后创建的文档。

我想要做的是将ProjectDocument的created_at时间戳与current_user的last_active_at时间戳进行比较。

user.rb(用户自己)

  has_many :us_prs

project_document.rb(将文档和项目作为参考)

  belongs_to :project

project.rb(项目本身)

  has_many :project_documents
  has_many :us_prs
  has_many :users, through: :us_prs

us_pr.rb(将用户(引用)分配给项目(引用))

  belongs_to :user
  belongs_to :project

我在我的控制器中:

    @mynewprojectdocuments = []
      (UsPr.where(user_id: [current_user.id])).each do |mynewprojectdocuments|
      (ProjectDocument.where(project_id: [mynewprojectdocuments.project_id])).each do |pr|  
          @mynewprojectdocuments << pr
       end    
    end  

我的观点:

<% @mynewprojectdocuments.each do |mynewprojectdocuments| %> 
...
<% end %> 

我在这里发现了几个似乎回答类似问题的帖子,但我根本无法让它发挥作用。

我想为这里的任何错误道歉,这是我在这里的第一个问题,我不太熟悉它是如何工作的,我也不是真正的程序员。

感谢您对此的帮助!

谢谢:)

1 个答案:

答案 0 :(得分:0)

您要做的是选择所有项目文档,其中项目文档的项目ID在用户的项目ID中,并在一定时间后创建?

所有模型倾向于拥有的一个方便的默认字段是created_at;另一个是updated_at。这些都是自动填充的。

返回您要查找内容的查询可能是这样的:

ProjectDocument.where(project_id: user.projects).where("created_at > ?", User.last_active_at)

这假设有两件事:

ProjectDocument.belongs_to Project
User.has_many Project