我的模型中有以下内容:
validates :name, :if => :should_validate_name?,
:presence => {:message => "Enter your name"},
:length => { :maximum => 50 },
:allow_blank => true
def should_validate_name?
validating_name || new_record?
end
在我的控制器中,我有以下内容:
def create
@user = User.new(params[:user])
@user.validating_name = false
if @user.save
else
render :action => 'new'
end
end
此时我不想验证是否存在姓名,并希望将其关闭。
我认为上面的代码可行,但事实并非如此。我不知道为什么。
答案 0 :(得分:2)
您正在进行create
操作,创建新记录。因此new_record?
将成立,即使validating_name
不是。