得到一個的has_many所有可能的值我有一個非常簡單的數據模型,如下所示:Rails的 - 通過關聯
class Object < ActiveRecord::Base
has_many :object_tags
has_many :tags, through: :object_tags
end
class Tag < ActiveRecord::Base
has_many :object_tags
has_many :objects, through: :object_tags
end
class ObjectTag < ActiveRecord::Base
belongs_to :object
belongs_to :tag
end
兩個對象和標籤有一個name屬性。
我想要做的是,對於一組定義的對象@objects,獲取我的一組對象可以使用的所有可能標記名稱的數組。我希望能夠做到這樣的事情(這是錯誤的,但只是爲了說明目的):@objects.pluck(:tags.name).uniq
我已經嘗試了很多東西,包括和連接,但沒有讓我得到我的結果。我得到的最接近的是@objects.includes(:tags).pluck(:tags)
,但它只能得到我的標籤數組,然後我無法檢索名稱。 這可能是一個非常簡單的問題,但我是Rails的初學者,在我的研究中找不到任何東西。
感謝您的幫助!
['Object'它是模型的名聲。(http://ruby-doc.org/core-2.2.2/Object。 html)Object是所有Ruby對象的默認根。 –
嘗試'@ objects.collect(&:tags)' –
我用'@ object.includes(:tags).uniq.map {| tag | tag.name}'。這聽起來像一個合理的解決方案? – Alexandre