Что использовать: класс или модуль в ROR

Я новичок в ROR и пытаюсь преобразовать свое приложение PhP в приложение ROR. Есть один php-файл common.php, который включен почти во все остальные файлы. Аналогичным образом common.php, в свою очередь, использует RPCClient.php и User.php. Переменные и методы являются общими для всех файлов php. Итак, что мне следует использовать в ROR-классе или модуле, поскольку данные распределяются между различными файлами.

Возможный дубликат В чем разница между include и require в Ruby?

RiggsFolly 09.05.2018 18:53

Это не дубликат номинированного образца, хотя этот вопрос действительно имеет некоторую актуальность, поскольку решение проблемы OP будет использовать «требовать» и «включать».

Wayne Conrad 09.05.2018 18:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
126
1

Ответы 1

В Ruby вы захотите организовать вещи в пространствах имен, и лучший способ сделать это - через объявления классов и модулей.

Обычно class - это то, что вы сделать пример, а module - это то, что либо «смешано» (например, набор методов, импортированных другими модулями или классами), либо используется напрямую.

Например:

class User < ActiveRecord::Base
end

Здесь Users - это класс, потому что вы - пользователи Создайте, и каждый пользователь представлен объектом.

Вы также можете объявить методы как «миксины» или включаемые модули:

module UserPermissions
  def can_delete_post?(post)
    post.user_id == self.id
  end
end

class User < ActiveRecord::Base
  include UserPermissions
end

Где теперь user.can_delete_post? - допустимый метод, и этот метод выполняется в контексте данного пользовательского экземпляра.

Вы также можете создавать модули, которые представляют собой просто наборы методов, которые вы можете вызывать напрямую:

module AppConfig
  def self.account_limit
    1
  end
end

AppConfig.account_limit
# => 1

Где вы можете вызвать этот метод напрямую, не обращаясь к нему через include. Это тоже довольно распространенный шаблон, это просто пространство имен организации.

Как и во многих объектно-ориентированных языках, особенно в языках, производных от Болтовня, вы захотите прочитать объектно-ориентированные шаблоны проектирования, чтобы увидеть, как правильно структурировать вещи.

Другие вопросы по теме