, çok iyi çalışan çok basit bir yaklaşım, kullandı: Sadece bir Array
-Tarla sayılabilir.
#app/models/image.rb
class Image
include Mongoid::Document
include Mongoid::Timestamps
field :message, :type => String
field :tags, :type => Array
def self.images_for tag
Image.any_in(:tags => [tag])
end
end
#routes.rb
match "tag/:tag" => "images#tag"
#/app/controller/images_controller.rb
class ImagesController < ApplicationController
# GET /tag
# GET /tag.xml
def tag
@images = Image.images_for params[:tag]
respond_to do |format|
format.html { render "index" }
format.xml { render :xml => @images }
end
end
end
Bu çalışır, ancak ben Image.any_in haritanın performansı hakkında hala biraz doubtfull duyuyorum/azaltır. Bu harita için daha iyi bir çözüm olabileceğini düşünüyorum/buldum ama henüz bulamadım.