加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 使用MongoID标记Rails的好方法

发布时间:2020-12-16 23:20:23 所属栏目:百科 来源:网络整理
导读:使用MongoID在Rails中标记的好方法是什么? 似乎只是在文档中添加哈希或数组非常简单,但我不确定这是否是最好的方法. 也许有些宝石?或者是嵌套文档的简单技巧? 解决方法 现在,我使用了一种非常简单的方法,它非常有效:只需包含一个数组字段. #app/models/i
使用MongoID在Rails中标记的好方法是什么?

似乎只是在文档中添加哈希或数组非常简单,但我不确定这是否是最好的方法.

也许有些宝石?或者是嵌套文档的简单技巧?

解决方法

现在,我使用了一种非常简单的方法,它非常有效:只需包含一个数组字段.
#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 map / reduce的性能有点怀疑.我认为可能有一个更好的解决方案,但尚未找到它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读