İki tablom var (yani kullanıcılar ve profiller). Tabloların şeması yer almaktadır:Ruby on ray: Bire bir veritabanı ekleme ile sorun
create_table "users", force: :cascade do |t|
t.string "username"
t.string "password_digest"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "profiles", force: :cascade do |t|
t.string "gender"
t.integer "birth_year"
t.string "first_name"
t.string "last_name"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
modelidir: Aşağıdaki adımlarda kayıtları eklemek çalışıyorum
class Profile < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :todo_lists
has_many :many_items, through: :todo_lists, source: :todo_items
end
:
user = User.create! username: "Fiorina",password_digest: "abc"
user_profile = Profile.create! gender:"F",birth_year:"1954",first_name:"Carly",last_name:"Fiorina"
user_profile.profile = user
Ancak olsun hatası:
"NoMethodError: undefined method" profile = "for"Hata iletisi açık değil.Ancak, nasıl çözeceğimi bilmiyorum, yani profile
yöntemini oluşturma. Ayrıca, aşağıdaki blogu okuyorum ve bire bir ilişki 4 yöntem oluşturacağını söylüyor. 4 yöntem oluşturulduğundan emin olmak için zaten var mı. veritabanı alanında ve dernek adına göre
user_profile.user = user
:
http://requiremind.com/differences-between-has-one-and-belongs-to-in-ruby-on-rails/