Rails 3: не могу создать отношения: has_one - PullRequest
0 голосов
/ 22 декабря 2010

У меня есть таблица User и таблица Profile.

Вот что у меня в User:

# Table name: users
#
#  id                   :integer         not null, primary key
#  email                :string(255)     default(""), not null
#  encrypted_password   :string(128)     default(""), not null
#  password_salt        :string(255)     default(""), not null
#  reset_password_token :string(255)
#  remember_token       :string(255)
#  remember_created_at  :datetime
#  sign_in_count        :integer         default(0)
#  current_sign_in_at   :datetime
#  last_sign_in_at      :datetime
#  current_sign_in_ip   :string(255)
#  last_sign_in_ip      :string(255)
#  created_at           :datetime
#  updated_at           :datetime
#  admin                :boolean
#

  has_one :profile

В профиле:

# Table name: profiles
#
#  id           :integer         not null, primary key
#  user_id      :integer
#  organization :string(255)
#  phone        :string(255)
#  mobile       :string(255)
#  fax          :string(255)
#  address      :string(255)
#  city         :string(255)
#  zipcode      :string(255)
#  province     :string(255)
#  country      :string(255)
#  description  :text
#  url          :string(255)
#  skype        :string(255)
#  im           :string(255)
#  name         :string(255)
#  permalink    :string(255)
#  created_at   :datetime
#  updated_at   :datetime
#

  belongs_to :user

Но когда я пытаюсь запустить User.find(3).profile.build(:user_id => 3) или User.find(3).profile.create(:user_id => 3), я получаю ошибку, что метод не существует.

Что я здесь не так делаю?

Редактировать : ruby-1.9.2-rc2 > Profile.create(:user_id => 10) хорошо работает.

1 Ответ

4 голосов
/ 22 декабря 2010

Я думаю, что вы хотите:

@user = User.find(3)
@profile = @user.build_profile()

Это создаст и свяжет новый профиль, но не сохранит его.

Используйте это, чтобы сохранить его также:

@user = User.find(3)
@profile = @user.create_profile()

Смотрите здесь: http://guides.rubyonrails.org/association_basics.html#belongs_to-association-reference

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