我有一個AudioFile has_many照片。一張照片有一個屬性「主」(分貝爲0或1)什麼是這樣做的慣用ruby方式:我想在AudioFile上有一個方法,它返回主照片的ID,即照片主屬性設置爲true。迭代集合並返回匹配元素
1
A
回答
1
通常,最佳做法是在您的Photo
模型中設置named_scope
。
class Photo < ActiveRecord::Base
named_scope :primary, :conditions => {:primary => true}
end
然後,您可以調用您的照片關聯的主要範圍。例如
@audio_file.photos.primary.first
你也可以用輔助方法包裝這個。
def primary_photo
photos.primary.first
end
查看http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html瞭解更多詳細信息和示例或谷歌named_scope。
1
我不確定這是不是你的意思,但Enumerable#Select會給你所有的項目從一個可匹配的案件(在塊中給出)的可枚舉對象。
相關問題
- 1. 在jQuery中找到集合中元素的匹配值,並返回該元素
- 2. 迭代RDD並更新可變集合返回空集合
- 3. 返回迭代器而不是集合
- 4. 獲取與迭代函數匹配的集合的第一個元素
- 5. 迭代使用Jquery嵌套JSON並返回匹配索引?
- 6. 返回匹配的元素從$查詢
- 7. 在匹配元素上合併列表
- 8. 如何返回兩個單獨集合中匹配元素的總和
- 9. jQuery:返回所有匹配的元素不僅一個匹配元素
- 10. 如何匹配兩個數組的元素並返回值
- 11. vlookup找到匹配並返回行中的另一個元素
- 12. 將匹配元素屬性合併到單個元素中
- 13. 調用println在集合中的每個元素並返回TRUE
- 14. 如何在函數上迭代組合元素的集合?
- 15. 在元組中按元素比較返回集的集合 - python
- 16. Ruby grep,匹配並返回
- 17. 配置元素集合節
- 18. 基於集合元素匹配,或空集
- 19. scala如何交集和匹配集合中的元素
- 20. 從像std :: find_if方法返回的迭代器不匹配常規迭代器
- 21. 迭代通過與之相匹配的集合,並創建條款
- 22. 如何迭代匹配正則表達式的數組元素?
- 23. 如何迭代JS中的散列並返回所有匹配結果?
- 24. backbone.js迭代集合
- 25. Java迭代集合
- 26. vba - 迭代集合
- 27. JQuery - 集合迭代
- 28. Python:匹配元組中的兩個元素,返回第三個
- 29. 多個集合的並行迭代
- 30. 並行迭代幾個集合
所以我可以寫 def primary_photo self.photos.select {| element | element.primary ='true'} end – rordude 2009-11-15 23:55:05