新手问题!在许多控制器方法中,我看到类似
的东西@user.doSomething
if @user.save
#flash or redirect something
else
#flash or redirect something
在这种情况下,是检查对象是否已保存,还是保存对象,然后检查它是否有效?
答案 0 :(得分:1)
if @user.save
这将保存对象,如果它有效并返回
true
,则@user
false
如果@user
未保存参见下面的示例
@user = User.new
@user.save
#=> false
@user = User.new(email: 'foo@bar.com', password: 'foobar123')
@user.save
#=> true
答案 1 :(得分:1)
您还可以执行以下操作:
def edit
@user = User.find(params[:id])
@user.assign_attributes(params[:user])
if @user.valid?
@user.save!
redirect
else
render
end
end
如果用户有效,这将保存用户,但如果由于某些其他原因无法保存,则会引发异常。