2015-03-02 47 views
0

我正在使用responders gem,并且我想在窗体无效时显示验证错误。在我的控制,我创建了interpolation_actionRails I18n将撇号更改为ASCII

def interpolation_options 
    { resource_errors: @project_user.errors.full_messages.join(', ') } 
end 

和我reponders翻译文件中有一个正确的密钥:

project_users: 
    create: 
    notice: "Member has been added" 
    alert: "%{resource_errors}" 

它工作得很好,我可以看到验证错误消息,问题是撇号更改为ASCII码。

enter image description here

回答

1

不响应还需要您添加的闪光灯在你的HTML?在这种情况下,您可以执行类似<%= flash[:alert].html_safe %>的操作来强制执行您的Flash消息中的html,即使是逃脱字符也是如此。

+0

当然!这么简单..谢谢它现在可以运作 – Dawid 2015-03-02 10:32:44

+1

这是潜在的危险。如果以这种方式进行操作,则必须确保手动转义可能在闪存中显示的所有用户提供的数据(例如“'foo bar baz'不是有效的Flurb”)。如果您无法手动转义这些值,则会出现XSS漏洞。 – 2015-03-02 13:10:51

+0

这是真的,谢谢指出。 – 2015-03-02 13:29:34