Rails 3.2 Twitter App。
解决方案:道具纠正答案。我有时会忽略简单的东西。结束了我的巨大观点。这对我来说更容易。看起来像这样。
<% @ribbits.each do |ribbit| %>
<% if ribbit.user != current_user%>
<% if ribbit.user.following? current_user %>
<% if ribbit.created_at > (Time.now - 1.day) %>
etc.
我有一个我想弄清楚的最后一个功能。如果用户的最新状态是在24小时前创建的,我想为他们创建一个新的“yadayadayada”状态。
以下是最近状态的显示方式。
users_controller.rb
def buddies
@ribbits = Ribbit.where("(ribbits.user_id, ribbits.created_at) IN (SELECT user_id, MAX(created_at) FROM ribbits WHERE user_id IN (?) GROUP BY user_id ORDER BY MAX(created_at) DESC LIMIT 10)", buddies_ids).order("created_at DESC")
/users/buddies.html.erb
<% @ribbits.each do |ribbit| %> ... etc
这样的事情可能是我的users_controller.rb
或ribbits_controller.rb
if @ribbits.user.ribbit created_at > (Time.now - 1.day)
Ribbit.new(:status => "sdfaklsdf")
end
Ribbits是推特。
答案 0 :(得分:2)
我认为你所看到的是一个调度程序。您可以使用Delayed Job或Sidekiq。 Sidekiq让你创建jobs at a specific time。
答案 1 :(得分:2)
如果您在数据库中不需要此“默认”状态,则可以将逻辑推送到用户模型中。
类似的东西:
class User < ActiveRecord::Base
def current_ribbit
if ribbit created_at > (Time.now - 1.day)
default_ribbit
else
ribbit
end
end
def self.default_ribbit
Ribbit.new(:status => "sdfaklsdf")
end
end