我正在尝试遍历我的flash消息,但我得到一个活动的模型对象作为消息。
<% flash.each do |key, msg| %>
<%= msg %>
<% end %>
#<ActiveModel::Errors:0x007f84c4cdb108 @base=#<User id: nil, email: "cd", created_at: nil, updated_at: nil, password_digest: "$2a$10$lmh2.rb9bAmsQ3lo6SEYqu1f2L1JOVrD8VxmPXJ5Jobx...", remember_token: nil, admin: false, username: nil, password_reset_token: nil, password_reset_sent_at: nil, provider: nil, uid: nil>, @messages={:email=>["is invalid"], :password=>["is too short (minimum is 6 characters)"]}>
如果然后循环通过对象我可以到达消息
<% flash.each do |key, msg| %>
<% msg.each do |k,m| %>
<%= m %>
<% end %>
<% end %>
is invalid
is too short (minimum is 6 characters)
我做错了什么?或者我必须这样做吗?
答案 0 :(得分:0)
看起来您正在使用错误对象而不是消息填充flash。您可以在视图中执行此操作以显示所有错误消息
<%= flash[:error].full_messages.join("\n")%>
我建议你只需在控制器中执行此操作,就可以在flash中填充错误消息
flash[:error] = @model.errors.full_messages
在你看来,你可以做到
<%= flash[:error] %>