我有这段代码:
if request.post? and @user.save
@contact.user_id = @user.id
@contact.save
flash[:notice] = l(:e_user_saved)
redirect_to :action => 'list'
end
但是当rails保存联系人时,user_id仍为空。
当我调试时,我看到它分配了值,但是当它保存时,它保存为null。为什么???
答案 0 :(得分:1)
contact.save
可能失败了。你没有检查返回值,所以你不知道。
检查contact.errors
哈希,看看出了什么问题。
您应该在contact.save
区块中if
:
if @contact.save
flash[:notice] = l(:e_user_saved)
redirect_to :action => 'list'
else
# some error handling
# and redirect somewhere else
end