您没有犯任何错误,通过创建帮助程序,您减少了执行常见事情所需的代码量,这对测试和组织非常有用。
我的一个建议是您更改设置并制作共享部分以显示代码,以便更易于管理。然后让您的辅助方法将参数代理到部分函数调用。
首先设置您的部分(将其保存为 shared/_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,因为所有内容都存储在部分中。