Использование Rails 3.0.3 в сочетании с гемами типа devise Я не получаю никаких флеш-сообщений.Теперь я упомяну devise, потому что он управляет файлами cookie, используемыми для моей аутентификации.
Теперь приложение Rails немного особенное, поскольку оно использует поддоменов .Что они делают, так это сообщают приложению, какую компанию просматривает пользователь.Пример: mycompany.theapp.com/projects/3/ <- Проект 3 компании «mycompany». <br>Когда пользователь входит в систему, он / она направляется на theapp.com/overview <- non subdomain <br>Everyуведомление там отображается, так почему бы не на страницах поддомена?
Так вот, этот код используется на страницах поддомена.Точно так же, как можно было бы поместить его на страницах, не относящихся к домену.Код в контроллере:
def update
redirect_to [@project], :notice => "Project #{@project.name} updated."
end
Layouts / application.html.erb
<% flash.each do |type, message| %>
<%= content_tag :div, message, :class => "flash #{type}" %>
<% end %>
Я также добавил следующее, пытаясь выяснить, что происходит:
flash.to_yaml
# Result: --- !map:ActionDispatch::Flash::FlashHash {}
Так как, очевидно, devise использует flash [: note], я тоже попробовал это (потому что это работало для devise).
flash[:notice] = "Project #{@project.name} updated."
# Result: --- !map:ActionDispatch::Flash::FlashHash {}
Теперь уведомления отправляются с помощью файлов cookie или данных сеанса, которые не 'хорошо перенесены в субдомены?Поскольку форма редактирования проекта находится на mycompany.theapp.com/projects/3/edit/
, и она отправляет меня на mycompany.theapp.com/projects/3/ (без уведомления)
Itпроисходит в Ubuntu 10.10 с «сервером rails», пассажиром, использующим nginx и даже на компьютере Mac (но кто-то другой это проверял).
Кто-нибудь хочет догадаться?