SORU
18 Mart 2010, PERŞEMBE


Kullanarak raylar has_one bir dernek kurmak

Bu örnekte, hayır user I. profile, Daha sonra bu kullanıcı için profile oluşturun. has_one bir dernek kurmak ama o havaya uçurdu kullanarak denedim. Bu çalışma görüyorum tek yolu has_many kullanıyor. user 12 ** en fazla olması beklenir.

Bu çalışıyordum. Var:

class User < ActiveRecord::Base
  has_one :profile
end

class Profile < ActiveRecord::Base
  belongs_to :user
end

Ama ben ne zaman:

user.build_profile 

Hata alıyorum:

ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'profiles.user_id' in 'where clause': SELECT * FROM `profiles` WHERE (`profiles`.user_id = 4)  LIMIT 1

0 veya 1 çağrışım raylar bir yolu var mı?

CEVAP
18 Mart 2010, PERŞEMBE


build yöntem imzası has_one has_many dernekler için farklıdır.

class User < ActiveRecord::Base
  has_one :profile
  has_many :messages
end

has_many dernek kurmak için sözdizimi:

user.messages.build

has_one dernek kurmak için sözdizimi:

user.build_profile  # this will work

user.profile.build  # this will throw error

Daha fazla ayrıntı için has_one Derneği documentation okuyun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BradleyWuzHere

    BradleyWuzHe

    25 NİSAN 2011
  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • Thom Hall

    Thom Hall

    24 Kasım 2006