我正在尝试从设计控制器呈现自定义闪存消息。
它在视图中呈现如下:
<strong>Your profile is incomplete.</strong> Why not #{ActionController::Base.helpers.link_to 'add some more information', edit_user_registration_path}.
如何在此 Flash 中呈现 HTML 和 Rails 助手?
我在控制器中调用闪光灯
set_flash_message :warning, :profile_incomplete
在:profile_incomplete
config/locales/devise.en.yml 中定义。
我尝试将字符串直接放入控制器中。这会正确呈现帮助程序,但会显示未找到设计翻译错误。
我尝试.html_safe
在 devise.en.yml 中附加,这会导致 yaml 错误。我试过附加:profile_incomplete
which cause undefined method 'html_safe' for :profile_incomplete:Symbol
。而且我尝试附加到纯字符串,这似乎没有做任何事情。
我错过了什么?感谢您的任何建议。
编辑
session_controller.rb
def after_sign_in_path_for(resource)
if current_user.completeness < 100
set_flash_message :alert, :profile_incomplete, :link => ActionController::Base.helpers.link_to('add some more information', edit_user_registration_path)
end
end
设计.en.yml
en:
devise:
sessions:
profile_incomplete:"<strong>Your profile is incomplete.</strong> Why not #{link}."
应用程序.html.erb
<% flash.each do |key, msg| %>
<div class="alert alert-<%= key %>">
<a class="close" data-dismiss="alert">x</a>
<%= msg.html_safe %>
</div>
<% end %>