Контроллер Rails 3 из плагина - PullRequest
4 голосов
/ 28 октября 2011

Я создаю плагин Rails 3 и хочу интегрировать в него контроллеры, которые будут автоматически считаться рельсами как «обычный» контроллер из папки app / controllers. Как я могу это сделать или как лучше всего использовать пользовательские контроллеры из плагина? Я нашел документацию от guides.rubyonrails.org , но они изменили документацию, и разработка плагинов больше не включает контроллеры.

Спасибо

1 Ответ

6 голосов
/ 28 октября 2011

Вам нужно будет определить класс в вашем плагине, который наследуется от Rails::Engine.По сути, функция, которую вы хотите , представляет собой движок .

. Определите класс следующим образом:

lib / your_thing / engine.rb

module YourThing
  class Engine < Rails::Engine
  end
end

Затем вы можете определить контроллеры вашего двигателя на app/controllers в этом плагине, и для их аккуратной работы вам также потребуется определить маршруты для них, что вы можете сделать внутри config/routes.rb внутри двигателя, как это:

YourThing::Engine.routes.draw do
  resources :things
end

Далее вам нужно будет смонтировать свой движок внутри приложения:

mount YourThing::Engine, :at => "/"

Приложение сможет использовать маршруты из вашего движка.

Для получения дополнительной информации, я в процессе написания официального руководства по Rails Engine, на которое вы можете сослаться здесь. Пожалуйста, дайте мне знать, если у вас есть какие-либо дополнительные вопросы, и я постараюсь ответить на них вруководство.

...