Ruby on rails 需要有关更新属性的帮助吗
我希望有人能看到这一点,并就如何让这一行动变得更好提出建议。它以我喜欢的方式工作,但似乎没有必要创建两个模型实例 我觉得我必须这样做,因为即使update_属性在验证失败时不会更新数据库,我仍然希望@user实例可以在视图中显示原始@user.photo。我用的是回形针 非常感谢Ruby on rails 需要有关更新属性的帮助吗,ruby-on-rails,ruby-on-rails-3,paperclip,Ruby On Rails,Ruby On Rails 3,Paperclip,我希望有人能看到这一点,并就如何让这一行动变得更好提出建议。它以我喜欢的方式工作,但似乎没有必要创建两个模型实例 我觉得我必须这样做,因为即使update_属性在验证失败时不会更新数据库,我仍然希望@user实例可以在视图中显示原始@user.photo。我用的是回形针 非常感谢 def edit_avatar @user = User.find(@username_id) if params['post_data'].present? @user.update
def edit_avatar
@user = User.find(@username_id)
if params['post_data'].present?
@user.update_attributes(params[:post_data])
@errors = @user.errors
if @user.errors.count == 0
@start_jcrop = true
else
@user = User.find(@username_id)
end
end
end
您可以使用功能,而不是重新加载模型。 或者你可以使用
@user.reload
而不是创建新实例
@user = User.find(@username_id)
...
else
@user.reload
end
end
您还可以简化视图,如下所示
@user = User.find(@username_id)
if params['post_data'].present?
if @user.update_attributes(params[:post_data])
@start_jcrop = true
else
@errors = @user.errors
@user.reload
end
end
如果你跳过重新加载
@user = User.find(@username_id)
if params['post_data'].present?
if @user.update_attributes(params[:post_data])
@start_jcrop = true
else
# render
# the previous image is available at
# @user.attribute_name_was
end
end