我被困在这里...... 我的应用程序中有各种各样的关系模型,现在我只想显示用户注销后创建的条目。为此,我的用户模型中有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 %>
我在这里发现了几个似乎回答类似问题的帖子,但我根本无法让它发挥作用。
我想为这里的任何错误道歉,这是我在这里的第一个问题,我不太熟悉它是如何工作的,我也不是真正的程序员。
感谢您对此的帮助!
谢谢:)
答案 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