2011-03-28 14 views
6

के साथ रेल में टैगिंग के लिए अच्छा समाधान मोंगोइड के साथ रेल में टैगिंग के लिए अच्छे समाधान क्या हैं?मोंगोइड

ऐसा लगता है कि दस्तावेज़ में हैश या सरणी जोड़ने के लिए वास्तव में आसान है, लेकिन मुझे यकीन नहीं है कि यह सबसे अच्छा तरीका है या नहीं।

शायद कुछ मणि? या नेस्टेड दस्तावेजों के साथ एक साधारण चाल?

उत्तर

3

अभी के लिए, मैंने एक बहुत ही सरल दृष्टिकोण का उपयोग किया, जो बहुत अच्छी तरह से काम करता है: बस Array -field शामिल करें।

#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 

यह काम करता है, लेकिन मैं अभी भी Image.any_in मानचित्र/प्रदर्शन के प्रदर्शन के बारे में थोड़ा संदिग्ध हूं। मुझे लगता है कि उस मानचित्र/कम करने के लिए एक बेहतर समाधान हो सकता है लेकिन इसे अभी तक नहीं मिला है।

1

यहाँ यह नक्शा के लिए एक "स्केलेबल" समाधान है/कम करने और वास्तविक समय एकत्रीकरण रणनीति mongoid_taggable_with_context

3

mongoid-tags-arent-hard मणि और अधिक सक्षम है (और अधिक सक्रिय रूप से बनाए रखा) अन्य जवाहरात मैंने देखा है की तुलना में लगता है।

संबंधित मुद्दे