Im просматривая код приложения rails, который я унаследовал, и я не являюсь экспертом в рельсах. В gemfile для приложения есть: gem 'tire'
. Отлично, но я ожидаю, что в моделях или контроллерах вам понадобится «шина», чтобы иметь возможность использовать библиотеки, которые предоставляет этот камень. Согласно документации конкретного драгоценного камня, он говорит, что он должен быть включен в качестве микса в класс модели.требуют, чтобы «шинный» камень не упоминался в классе модели, но использование его по-прежнему работает в rails app
include Tire::Model::Search
include Tire::Model::Callbacks
Или документация упоминает использовать require 'tire'
в классе модели, где вы собираетесь использовать камень шин. Но в проекте я не вижу ни одного из них require/includes в моделях. Модели просто используют api, не требуя в том числе:
ret = Tire.index "icrd" do
import [icrdObj]
refresh
end
Как это работает? Где я должен смотреть в проекте рельсов, чтобы понять, почему require или include не нужен? Есть ли какая-то автозагрузка?
Подождите минутку, вы говорите мне, когда я добавляю камень в gemfile проекта рельсов и запускаю установку пакета, он автоматически добавляет все драгоценные камни в проект rails, который я могу использовать где угодно? Таким образом, я могу использовать API-интерфейс gem в любом месте всего проекта rails, не беспокоясь о добавлении 'include 'tire'' в верхнюю часть рубинового файла, в котором я хочу использовать драгоценный камень? –
Вам не нужно беспокоиться о 'require 'tire'', вам ** нужно ** однако использовать' include Tire :: Model :: Search', если камень требует от вас этого, только 'require' не необходимо с пакетом в rails –
Почему я не понимаю, 'require' не нужен, если мы используем bundler. Но почему Tire :: Model :: Search нужно «включить»? –