我正在做一個會員數據庫的應用程序。看看一個人是否在另一個字母,紅寶石,鐵軌
每個人都可能有一個伴侶。當顯示列表時,我只想爲每個家庭都有一行,所以此刻我比較名字,如果該名字是第二名,則不顯示該行。像這樣
person.first_name != [person.first_name, person.partner.first_name].sort[0]
這意味着每個家庭只顯示一次,而不是兩次 - 每個合作伙伴一次。
而我在視圖中這樣做。
必須有更好的方法來做到這一點,如果我可以在數據庫級別做到這一點,那將是非常棒的。我使用postgresql如果有所作爲。
編輯
很抱歉,如果現在還不清楚。
說人1有first_name「Edward」,Person 2有first_name「Fay」。愛德華和費伊結婚了。
我只想在我的列表中多次告訴他們 - 我想一排看起來像這樣
Surname First name Address etc
Mysurname Edward ....
Fay
我不想與小仙子再次顯示它首先是因爲我有兩個Fay和愛德華在人名單中,所以我在問題的第一部分使用紅寶石來檢查是否應該顯示該行 - 它比較了他們的名字,並且只在該人的拳頭名稱位於他/她的伴侶之前名字。
這裏是我的人模型
class Person < ActiveRecord::Base
has_one :relationship_link, :foreign_key => :person_id, :dependent => :destroy, :include => :partner
has_one :partner, :through => :relationship_link, :source => :person_b, :class_name => "Person"
的相關部分,我希望更清晰
這是什麼意思「這個人的名字是第二」?而且,通過「每個伴侶一次」,你的意思是「一對一對/一對」? – sawa
會員資料庫,個人,合作伙伴和家人。這很難理解你的問題。更清楚的是,如果你能將真實的關係粘貼到你的模型上。 – emrahbasman
你試圖達到的結果是什麼?一個例子在這裏很有用。 – Yule