Я использую пользовательские стойки промежуточного уровня в моем Rails 3.1 приложения, которое оборачивается вокруг контроллера ванили Rails:перезарядка рельсы укладывают в разработке для запросов через пользовательские промежуточный
в routes.rb
stacked_router =
Example::Middleware::StackedRouter.new(ProductsController.action(:show))
match '/:id', :to => stacked_router
в example/middleware/stacked_router.rb
class Example::Middleware::StackedRouter
def initialize(app)
@app = app
end
def call(env)
# ... do stuff before forwarding the request, then
@app.call(env) # forward the request
end
end
Это прекрасно работает.
Однако есть уловка: Когда я сейчас изменяю код в ProductsController
, изменения не взял автоматически. Я должен перезапустить приложение вручную (touch tmp/restart.txt
)
Каким образом можно сказать стек Rails, что ему нужно перезагрузить этот кусок промежуточного программного обеспечения при изменении кода?
После того как я обновил свой ответ, я wa Любопытно, могу ли я воспроизвести проблему, и я не мог. Я создал новый проект 3.2 с подклассом Product, добавил маршрутизатор, как ваш, и контроллер продуктов все еще перезагружен. Я тестировал как индекс, так и шоу, и он определенно подбирает изменения. Может быть, эта информация помогает в игре «где это не так» :) – Woahdae