2015-03-02 48 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