我有一个模型用户与设计宝石。我添加了一个名为预算的新字段。
Users
id | name | password | ... | budget
我有一个与_form.erb.html
不同的文件_form_edit.erb.html
。
_form_edit
~ update
为有预算字段的profile。_form
到create
进程。
users_controller.erb
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { head :ok }
else
format.html { render action: "edit" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
如何防止从登出当我更新预算在我的个人资料?
您可以在下面的链接中提到的方式来控制用户(设计模型更新)后的重定向。
https://github.com/plataformatec/devise/wiki/How-To -Customize-the-redirect-after-a-user-edits-their-profile
另外,你可能必须确保你跳过常规的设计认证(它是一个before过滤器,我认为你可以重写),以确保你使用自己的before过滤器来控制它。
另一种可能更干净但更痛苦的方法是将您的模型拆分为User和(类似于)UserInformation,其中您可以与User建立一对一的关系。您可以在此模型中维护关于用户的所有非授权相关信息,并将其视为系统中的其他模型。如果"预算"不仅仅是一件事,而且你的用户配置文件中有很多信息,那么这种方法更好。