Вопрос

У меня есть две модели, пользователь и аккаунт. У каждого пользователя может быть одна учетная запись.

Создание учетной записи пользователя работает нормально. Моя проблема заключается в том, что, когда я пытаюсь обновить учетную запись, предыдущие учетные записи user_id nullified и новая строка учетной записи создается с помощью user_id. Я не хочу этого происходит. Я хочу обновить существующую строку с изменениями в учетной записи. Как мне это сделать?

Спасибо.

Это было полезно?

Решение

С помощью этого кода

@account = @user.account.build(params[:account])
if @account.save 
   #... 
else 
   #...
end 

Вы строите новое account. Отказ Что вам нужно, это обновить

if @account.update_attributes(params[:account])
   #...
else
   #...
end

Другие советы

Поскольку вы не предоставили ни одного кода, давайте скажем, это то, как вы создаете пользователь

user = User.create(:name => "bob")

Тогда вы можете связать пользователь с учетной записью, указав ID пользователя

account = Account.create(:user_id =>user.id, :status => "not activated")

Теперь давайте скажем, мы хотим изменить статус учетной записи. Мы можем позвонить в обновленный метод в Rails http://api.rubyonrails.org/Classes/activerecord/base.html#m002270. так:

Account.update( account.id, :status => "activated")

Я могу быть более полезным с большей информацией.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top