我不知道该怎么做。我在名为 admin 的命名空间内的用户控制器中,这就是我的表单的样子:
<%= form_for [:admin, @user] do |f| %>
<% if @user.errors.any? %>
<div class="reg-error">
<h4>Could not send registration!</h4>
<ul>
<% for message in @user.errors.full_messages %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.label :email %><br>
<%= f.text_field :email %><br><br>
<%= f.label :rank %><br>
<%= f.select :rank, options_for_select([1, 2, 3, 4, 5]) %><br><br>
<%= f.submit "Send registration", :confirm => "Are you sure?" %>
<% end %>
如您所见,我正在使用[:admin, @user]
该表单,但仅替换@user.errors.any?
为[:admin, @user].errors.any?
它自己的表单工作得很好,但它不会显示验证错误。
我该怎么做呢?
更新 - 已解决
我没有给你看我的控制器,我在那里发现了错误..
if @user.save
UserMailer.invitation_mail(@user).deliver
redirect_to admin_manage_users_path, :notice => "Successfully added a new account! Mail has been sent"
else
@user = User.new
@registered_users = User.where(:reg_key => nil)
@pending_users = User.where("users.reg_key IS NOT NULL")
render "show"
end
由于我@user = User.new
在 else 语句中有一个,它以某种方式重置了错误消息。完全错过了那个。如果其他人也会犯这个简单的错误,我会把它留在这里。谢谢你的回复。