Я использую комбинацию Ответчиков Rails для генерации моих ответных сообщений и некоторого содержимого в моем файле <action>.js
.
Содержание - скажем update.js
будет выглядеть примерно так:
// Checks if the article slug has changed.
// If it has the entire page should be reloaded at that new location.
<%= reload_if_slug_changed @article, params[:id] %>
// Displays the flash notices
// See ApplicationHelper#js_flash_response
<%= js_flash_response %>
Где различные методы определены в некотором помощнике (в моем случае мой ApplicationHelper).Содержимое различных методов выглядит следующим образом:
def js_flash_response
if flash.now[:notice].present?
js = "$('#notice').html('#{flash.now[:notice]}').change();"
elsif flash.now[:alert].present?
js = "$('#alert').html('#{flash.now[:alert]}').change();"
end
end
def reload_if_slug_changed object, expected_value
"window.location.href = '#{url_for [:edit, object]}';" if object.slug != expected_value
end
Содержимое флэш-сообщений генерируется автоматически Ответчиками Rails и отображается с областью now
, удаляющей изфлеш-хэш, гарантирующий, что если пользователь перезагрузится (после отображения флеш-памяти), он не появится снова.
Я не верю, что вам когда-либо нужно сделать форму, указывающую на спокойное create
действие, удаленной, потому что вы всегда ожидаете критического перенаправления, поэтому в моем случае мне нужно перенаправить только, если URLСлизняк изменился.
Надеюсь, это поможет.Это не решение, а просто способ решения некоторых из тех же проблем.
С уважением.