我是 Ruby on Rails 的新手,也是这个网站的新手。我正在尝试在我的控制器上获取我在模型上设置的验证中的错误,以便我可以根据是否发生此错误来更改闪存消息。
我有这个验证:
class User < ActiveRecord::Base
attr_accessible :login, :password
validates_presence_of :login , :message => 'Login can't be empty'
validates_presence_of :password ,:message => 'Password can't be empty'
我的控制器中有这段代码:
def create
login = params[:username].downcase
password = params[:password]
tuser=User.new(login: login, password: password).save
if(tuser.errors.any?)
flash[:title]='¡Error!'
flash[:notice]='Please verify your data'
else
flash[:title]='¡Success!'
flash[:notice]='Your account was created'
end
我在我的 html 上使用这个 flash 对象来呈现引导模式:
<% if flash[:notice] %>
<div class="modal hide fade" id="modal">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">× </button>
<h3><%= flash[:title] %></h3>
</div>
<div class="modal-body">
<%= flash[:notice] %>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
</div>
</div>
问题发生在控制器中,我收到此错误:
NoMethodError in UserController#create
undefined method `errors' for false:FalseClass
我想将我的 flash [notice] 错误消息更改为验证引发的错误消息,但我做不到。我遵循了一些教程,但他们使用 .html 文件上的 @tuser 全局变量来获取验证错误消息,我需要在控制器上处理它们。谁能帮我?
谢谢