Можно ли вызывать методы модели рельсов из промежуточного программного обеспечения стойки? - PullRequest
4 голосов
/ 11 марта 2010
def inside_rack_middleware
  MyModel.update_attributes(:ip => request.ip)
  redirect somewhere else
end

это возможно?

Ответы [ 2 ]

2 голосов
/ 12 марта 2010

получил ответ через @ supercoco9 в твиттере: «Если ваше промежуточное ПО находится в стеке стоек / рельсов, вы можете использовать модели напрямую через AR»

0 голосов
/ 02 сентября 2016

Да, вы можете получить доступ к своим моделям AR из своего промежуточного программного обеспечения. Я добавил byebug в свое промежуточное ПО и смог получить доступ к своим моделям.

РЕДАКТИРОВАТЬ: - Итак, я начал писать промежуточное программное обеспечение Rack для использования в моем приложении Rails. Я пытался получить доступ к своей модели AR в промежуточном программном обеспечении, но ее поведение было довольно забавным. Все будет хорошо для первого запроса, обслуживаемого после нового запуска сервера. Но любой запрос, который пришел после этого, приводил к ошибке: -

Копия MyMiddleware была удалена из дерева модулей, но все еще активна

Эта ошибка исчезла, как только я прекратил доступ к модели AR из промежуточного программного обеспечения. Я только начал с Ruby / Rails, поэтому я не знаю конкретных терминов в мире Ruby / Rails / Rack. Проще говоря, все, что я могу сказать, это то, что промежуточное ПО Rack - это просто разновидность библиотеки plug & play, которую каждый может использовать в любом приложении Rack. Поэтому мы не должны зависеть от каких-либо объектов Rails внутри нашего Middleware.

...