Rails 3 -一个模型单独的表单



我有一个模型用户与设计宝石。我添加了一个名为预算的新字段。

Users
id | name | password | ... | budget 

我有一个与_form.erb.html不同的文件_form_edit.erb.html

_form_edit ~ update为有预算字段的profile。_formcreate进程。

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建立一对一的关系。您可以在此模型中维护关于用户的所有非授权相关信息,并将其视为系统中的其他模型。如果"预算"不仅仅是一件事,而且你的用户配置文件中有很多信息,那么这种方法更好。

最新更新