Где разместить логику в проекте Ruby on Rails - PullRequest
0 голосов
/ 25 октября 2019

Я использую RoR в течение последних двух недель, и я не уверен, куда поместить кусок логики.

У меня есть две модели: Site и Post. Модель Post имеет много связей с другими моделями, которые представляют все виды метрик, например: 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 голосов
/ 25 октября 2019
# app/models/interaction_metrics.rb
require 'my_resource'

class InteractionMetrics < ApplicationRecord
  def gather_interactions
    MyResource.get_interactions
  end
end

Затем поместите свой код ruby ​​в папку / 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 / папка *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...