我尝试在Rails中创建和显示错误,我有一个问题。
这是我的代码:
控制器:
flash[:errors] = []
flash[:errors] << [:message => t('clubs.errors.no_contact'), :strong => new_member_params[:email] + ': ']
视图:
<% if flash[:errors].present? %>
<% flash[:errors].each do |error| %>
<div class="alert alert-danger">
<a class="close" aria-hidden="true" href="#" data-dismiss="alert">×</a>
<strong><%= error[:strong] %></strong>
<%= error[:message] %>
</div>
<% end %>
<% end %>
我有这个错误:
TypeError in Clubs#members
no implicit conversion of Symbol into Integer
在这一行:
<strong><%= error[:strong] %></strong>
有什么想法吗?
答案 0 :(得分:1)
如果您在执行此操作后查看flash [:errors]:
flash[:errors] << [:message => t('clubs.errors.no_contact'), :strong => new_member_params[:email] + ': ']
它可能看起来像[[{message: 'no_contact'}]]
,因为你将哈希包装在方括号中......基本上将哈希放在数组中的数组中。我想你想要做的就是更改上面的那一行,这样你就可以在数组中附加一个Hash而不是一个哈希,如下所示:
flash[:errors] << { :message => t('clubs.errors.no_contact'), :strong => (new_member_params[:email] + ': ') }