【发布时间】:2016-12-14 11:36:20
【问题描述】:
在我的应用程序中,我有用户和虚假帖子。我想要什么:对于每个用户,假帖子应该以随机顺序显示 - 但是与假帖子相关的(假)时间戳应该是按时间顺序排列的。为了更清楚:
User A sees:
- Post 1 created at 15.12.2016 - 14:00
- Post 2 created at 15.12.2016 - 13:00
- Post 3 created at 14.12.2016 - 23:00
User B sees:
- Post 3 created at 15.12.2016 - 14:00
- Post 1 created at 15.12.2016 - 13:00
- Post 2 created at 14.12.2016 - 23:00
我已经用这些列创建了一个新表:
fakepost_id | user_id | fake_timestamp
我的模型看起来像这样:
# fakepost.rb
class Fakepost < ApplicationRecord
has_many :randomized
end
# user.rb
class User < ApplicationRecord
has_many :randomized
end
# randomized.rb
class Randomized < ApplicationRecord
belongs_to :user
belongs_to :fakepost
end
现在我想做以下事情(我现在只有伪代码,因为我不知道如何实现它:(...)
- 创建新用户时...
- 获取所有虚假帖子并...
- 为每个 fakepost 写入新表:fakepost_id、新创建用户的 user_id 和过去的随机时间。
我知道在我的 user.rb 模型中我可以定义一个 after_create 回调,但是我如何在我的用户模型中获取所有的 fakeposts(它们没有关联)以及我如何写入另一个表(不是用户表)?还是我应该创建一个 randomize.rb 模型?
【问题讨论】:
标签: ruby-on-rails database callback