我想写一个评估 if ,在那时运行一段代码;
或
我尝试过类似的东西,但它不起作用;
<% if !current_user.invites.any? || (Date.today - current_user.invites.last.created_at.to_date) >= 30.days %>
#some code is run here
<% end %>
最好的方法是什么?
答案 0 :(得分:4)
你可以这样做:
class User < ActiveRecord::Base
def has_sent_invite_in_last_month?
invites.any? && invites.last.created_at > 1.month.ago
end
end
然后:
<% unless current_user.has_sent_invite_in_last_month? %>
<% #do stuff %>
<% end %>
如果用户没有发送邀请,那么他们上个月也没有发送过邀请,所以这个措辞涵盖了这两种情况。
答案 1 :(得分:1)
您可以检查过去30天内是否有对该用户的邀请:
unless current_user.invites.where("created_at >= ?", 30.days.ago).exists?
# ...
end
查询应该是User
模型中的方法。