我正在写一些if / elsif语句来显示错误消息。当我将用户名留空并正确填写其他字段时,它仍然会转到else语句并显示“所有字段必须完成”。有人能指出我的逻辑/语法中的错误吗?
<% if @user.errors.any? %>
<div id="error_explanation" class="round">
<% if @user[:name].nil? and @user[:email].not.nil? and @user[:password].not.nil? and @user[:password_digest].not.nil? %>
<h2>Please enter a valid username. </h2>
<% else %> <!--If any field is left blank -->
<h2>All fields must be completed. </h2>
<% end %>
</div>
<% end %>
如果您还有其他需要,请告诉我。
答案 0 :(得分:2)
我认为railscasts有很好的验证集http://railscasts.com/episodes/211-validations-in-rails-3
检查一下,您当前的方法肯定会在将来需要检查验证时遇到一些麻烦。
答案 1 :(得分:0)
试试这个
<% if @user[:name].nil? and !@user[:email].nil? and !@user[:password].nil? and !@user[:password_digest].nil? %>