Можно ли передать флеш-сообщение из Rails в Sinatra? - PullRequest
5 голосов
/ 16 марта 2011

У меня есть проект, который использует Sinatra для статических страниц и Rails для приложения.

Я разрешаю запрос на выполнение одного или другого, выполнив это в config.ru:

run Rack::Cascade.new([
  EightyEightTactical::Root,
  EightyEightTactical::Application
])

Где EightyEightTactical::Root - это подкласс Sinatra::Base, а EightyEightTactical::Application - это подкласс Rails::Application.

Я нахожусь в сложной ситуации, когда мне нужно установить флэш-сообщение в контроллере Railsи отобразить его в макете Синатры.

Я заметил, что Rails использует ActionDispatch::Flash в промежуточном программном обеспечении, но я не могу понять, как получить доступ к флэш-сообщениям вне приложения Rails.Я ошибаюсь или это можно сделать?

1 Ответ

3 голосов
/ 16 марта 2011

Если вы используете хранилище сеансов Cookie, вы можете сделать следующее:

1) Получить доступ к cookie сеанса с именем, указанным в config/initializers/session_store.rb.

2) Расшифровать сеансcookie для получения хеша сессии

3) Получите доступ к ключу с именем flash, который содержит хеш.

4) Выполните итерации и отобразите флэш-сообщение.в ActionController :: Session :: CookieStore класс для более подробной информации.

...