我试图弄清楚如何显示自用户的last_request_at以来在表中创建的记录的计数。
在我看来,我使用以下代码计算notes
的{{1}}:
question
这发生在<% unless @questions.empty? %>
<% @questions.each do |question| %>
<%= h(question.notes.count) %>
end
end
文件中。我不想计算问题的所有/views/users/show.html.erb
,而只想计算自用户notes
日期时间以来创建的注释。我不一定希望范围说明显示这个“新笔记”计数应用程序范围,只是在这一个实例中。
要完成我假设我需要在User#show action中创建一个变量并在视图中调用它,但不确定如何做到这一点。
您可能需要的其他信息:
last_request_at
答案 0 :(得分:1)
只需创建一个命名范围,然后仅在适用时使用它:
class Note < ActiveRecord::Base
named_scope :added_since, lambda { |time| {
:conditions => time && [ 'created_at>=?', time ]
}}
end
这应该只在提供时间时强制执行条件。如果您提交零时间,则默认行为是范围所有注释。
这样你可以按照以下方式做点什么:
@new_notes = @user.notes.added_since(@user.last_login_at)
添加命名范围不会改变默认范围。