Friday, February 27, 2015

Ruby on rails моделын assosocation

Ноорог

Ruby on rails дээр энгийн болон N*M гэсэн 2table(модел)-ийн assosocation-г хэрэглэж байсан ч доорх table-уудын хоорондох холбоог яаж хийхээ мэддэггүй G ахаас асуусан амарханаар хийчихдэг юм байна. Тиймээс ноороглоод орхихоор шийдлээ.



Доор Atable болон Btable-ийн assosocation-ийг үзүүлэв

class Atable < ActiveRecord::Base
  has_many :A_Btables
  has_many :Btables, through: :A_Btables
end

class A_Btable < ActiveRecord::Base
  belongs_to :Atable
  belongs_to :Btable
end

class Btable < ActiveRecord::Base
  has_many :A_Btables
  has_many :Atables, through: :A_Btables
end


Доор Ctable болон Btable-ийн assosocation-ийг үзүүлэв

class Ctable < ActiveRecord::Base
  has_many :C_Btables
  has_many :Btables, through: :C_Btables
end

class A_Btable < ActiveRecord::Base
  belongs_to :Ctable
  belongs_to :Btable
end

class Btable < ActiveRecord::Base
  has_many :C_Btables
  has_many :Ctables, through: :C_Btables
end

Үүн дээр Atable.Ctable гэж хандахын тулд Atable-ийн модел дээрээ доорх маягаар зарлахад л хангалттай.

has_many :Ctable, :through => :Btable

Uniq өгөгдөл авахын тулд доорх маягаар бичиж өгч бас болно.

has_many :Ctable, :through => :Btable, :uniq => true

Ингээд Atable.Ctable гэж хандах боломжтой болж байна. Янзтай байгаа биз. Хэрэв өөр хэл дээр иймэрхүү олон table дамжсан өгөгдөл select хийх программ бичвэл жаахан урт зүйл болж магадгүй байх. Харин ROR дээр модел хоорондын assosocation ийг зөв тодорхойлвол хялбархан хийх боломжтой.

Шүдний эмнэлэг явах цаг болчихоод маш яаруу бичлээ хаха.
Дараа ахиад сайн нягталж алдаатай зүйл байвал засна.

No comments:

Post a Comment