我有一个表User和一个表Profile。
以下是我在用户中的内容:
# 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)
效果很好。
答案 0 :(得分:4)
我认为你想要的是:
@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