我应该在Ruby on Rails项目中的何处放置逻辑

时间:2019-10-24 22:24:04

标签: ruby-on-rails

过去两周来我一直在使用RoR,但不确定在哪里放置逻辑。

我有两个模型:SitePostPost模型与代表各种度量标准的其他模型有很多关系,例如:InteractionMetrics。保存帖子后即会计算交互指标,对于实际的数据收集,我使用了第三方服务。我已经创建了用于与第三方服务进行交互的API包装器(SDK),并且在InteractionMetrics中,我具有:

class InteractionMetrics < ApplicationRecord

  def gather_interactions
    client = XxxApi.new <url_of_post>
    data = client.get_interactions
    # Save data here
  end
end

现在,我不确定这是否是放置此逻辑的正确位置,否则,我应该放在哪里?

顺便说一句,我知道我不应该问一个以上的问题,但是我不确定如何获得this所属的帖子。

1 个答案:

答案 0 :(得分:0)

# app/models/interaction_metrics.rb
require 'my_resource'

class InteractionMetrics < ApplicationRecord
  def gather_interactions
    MyResource.get_interactions
  end
end
  

然后将红宝石代码放在/ lib文件夹中

# lib/my_resource.rb
class MyResource
  URL = <url_of_post>
  def self.get_interactions
    client = XxxApi.new(URL)
    client.get_interactions
  end
end

Rails: /app vs /lib folder

相关问题