Рельсы 3 - Отдельная форма для 1 модели - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть один пользователь модели с самоцветом Devise. Я добавил новое поле под названием бюджет.

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

У меня есть файл _form_edit.erb.html, который отличается от _form.erb.html.

_form_edit до update профиля с полем бюджета. _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

Как предотвратить выход устройства gem из системы при обновлении бюджета в моем профиле?

1 Ответ

0 голосов
/ 27 декабря 2011

Вы можете воспользоваться указанным в ссылке ниже способом управления перенаправлением после пользователя (модель Devise обновлена).

https://github.com/plataformatec/devise/wiki/How-To:-Customize-the-redirect-after-a-user-edits-their-profile

Также вам может потребоваться пропустить обычную проверку подлинности Devise (это фильтр до, который вы можете переопределить, я думаю), чтобы обеспечить контроль над ней, используя свой собственный фильтр до).

Еще один, возможно, более чистый, но более болезненный способ - перетекать вашу модель в User и (что-то вроде) UserInformation, где вы можете иметь личные отношения с User. Вы можете хранить всю информацию, не связанную с аутентификацией, о пользователе в этой модели, и обращаться с ней как с другими моделями в системе. Этот подход лучше использовать в том случае, если «бюджет» - это не просто одно, а в вашем профиле пользователя гораздо больше информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...