您沒有犯任何錯誤,並且通過創建幫助程序,您可以減少執行常見任務所需的代碼量,這對測試和組織非常有用。
我的一個建議是更改設置並使共享部分顯示代碼,以便管理更容易。然後讓你的幫助器方法只是將參數代理給部分函數調用。
首先設置您的部分(將其保存爲共享/ _flash_messages.html.erb):
<div class="flash-messages">
<% if messages && messages.length > 0 %>
<% messages.each do |key, message| %>
<div id="<%= key %>" class="flash"><%= message %></div>
<% end %>
<% else %>
No Messages to display
<% end %>
</div>
然後設置您的輔助方法:
def register_flash_message(key,message)
flash[key]=message
end
def display_flash_messages()
render 'shared/flash_messages', :messages => flash
end
這會使事情變得更容易維護和定製。因爲所有內容都存儲在部分內部,所以您也不必處理必須在Ruby內部構建HTML。