在我的Rails應用程序,用戶可以一起去的事件 -更好的辦法找到的has_many唯一記錄
user.rb
has_many :attendances
has_many :events, through: :attendances
event.rb
has_many :attendances
has_many :users, through: :attendances
...由一個由event_id,user_id和一些其他零碎組成的出勤表 -
att endance.rb
belongs_to :user
belongs_to :writers_event
在尋找特定出席時,我發現自己正在使用.where ... .first - 例如,
attendance = Attendance.where(user_id: @user.id, event_id: this_event_id).first
而且這讓我感到我錯過了,我們談到了這種類型的情況使用類似find_by
類 - 換句話說,你有信心,你正在尋找一些獨特的東西。這可能沒有關係,但是搜索一個集合然後從其中獲取第一個對象會感到浪費和錯誤。
有沒有更好的方法?
我環顧四周,這是最接近的,但沒有(我不認爲)真的覆蓋它。 How to display unique records from a has_many through relationship?
顯然你可以對事件做同樣的事情:'''my_cool_event.attendances.find_by(user_id:@ user.id)'' –