试图将推文保存到模型中
trying to save tweets into a model
所以我觉得我已经找到了这个拼图但无法解开这个谜题。
所以我有一个用户模型,它可以跟随几个关键字(查询)。协会是这样的:
用户
has_many :campaigns #they can add and remove keywords to this association
has_many :alerts, through: campaigns
现在我想做的是创建一个方法来搜索那些 User.campaigns,并将它们保存在警报中。因此我可以看到哪个查询连接到哪个关键字(通过 campaign_id)。
这是我的:
keywords = current_user.campaigns.map(&:keywords)
current_user.twitter.search(keywords, result_type: 'recent').take(5).collect do |tweet|
"#{tweet.id} #{tweet.user.id}"
end
现在我的代码有问题,就是关键字是一个数组。我想要它做的是一次搜索一个数组。
然后我想把它存入Alert table。我有列 'tweet_id' 和 'owner_id' 以及 'campaign_id'.
理想情况下,我有一个每 15 分钟执行一次的 cron 作业。
我不知道从哪里开始。有什么想法吗?
如果您要查找的只是如何搜索每个单独的关键字,那么应该这样做:
根据 OP
的说明进行编辑
current_user.campaigns.each do |campaign|
current_user.twitter.search(campaign.keyword, result_type: 'recent').take(5).map do |tweet|
"#{tweet.id} #{tweet.user.id}"
#new_alert = current_user.alerts.create(campaign: campaign....)
end
end
请注意,可能有一种方法可以让 twitter.search return 只有 5 个结果,这样就不需要调用 .take 了。
另请注意,我交换了您的 .map 和 .collect - 它们大部分可以互换,但语义上 .collect 对我来说意味着 "retrieve some values" 而 .map 意味着 "take some action on each value"。
有帮助吗?
所以我觉得我已经找到了这个拼图但无法解开这个谜题。
所以我有一个用户模型,它可以跟随几个关键字(查询)。协会是这样的:
用户
has_many :campaigns #they can add and remove keywords to this association
has_many :alerts, through: campaigns
现在我想做的是创建一个方法来搜索那些 User.campaigns,并将它们保存在警报中。因此我可以看到哪个查询连接到哪个关键字(通过 campaign_id)。
这是我的:
keywords = current_user.campaigns.map(&:keywords)
current_user.twitter.search(keywords, result_type: 'recent').take(5).collect do |tweet|
"#{tweet.id} #{tweet.user.id}"
end
现在我的代码有问题,就是关键字是一个数组。我想要它做的是一次搜索一个数组。
然后我想把它存入Alert table。我有列 'tweet_id' 和 'owner_id' 以及 'campaign_id'.
理想情况下,我有一个每 15 分钟执行一次的 cron 作业。
我不知道从哪里开始。有什么想法吗?
如果您要查找的只是如何搜索每个单独的关键字,那么应该这样做: 根据 OP
的说明进行编辑current_user.campaigns.each do |campaign|
current_user.twitter.search(campaign.keyword, result_type: 'recent').take(5).map do |tweet|
"#{tweet.id} #{tweet.user.id}"
#new_alert = current_user.alerts.create(campaign: campaign....)
end
end
请注意,可能有一种方法可以让 twitter.search return 只有 5 个结果,这样就不需要调用 .take 了。
另请注意,我交换了您的 .map 和 .collect - 它们大部分可以互换,但语义上 .collect 对我来说意味着 "retrieve some values" 而 .map 意味着 "take some action on each value"。
有帮助吗?