小编enR*_*Rai的帖子

mongoid中embeds_many和has_many之间的区别

谁能向我解释mongoid embeds_manyhas_manymongoid 之间的区别?

ruby ruby-on-rails mongodb mongoid

38
推荐指数
1
解决办法
7678
查看次数

什么是Rails方式?(可读性与干燥性)

我有一个用户模型,它有投票方法.我想写代理方法进行投票.

这是可读的方式:

def vote_up item
  return false unless can? :vote, item
  vote item, :up
end

def vote_down item
  return false unless can? :vote, item
  vote item, :down
end
Run Code Online (Sandbox Code Playgroud)

这是干的方式:

%w(up down).each do |vtype|
  define_method "vote_#{vtype}" do |item|
    return false unless can? :vote, item
    vote item, vtype.to_sym
  end
end
Run Code Online (Sandbox Code Playgroud)

哪一个更好,为什么?

ruby-on-rails

9
推荐指数
1
解决办法
201
查看次数

在模型中使用Rails应用程序配置变量

我在rails应用程序中定义了自定义配置变量(APP_CONFIG哈希).好的,现在我如何在模型中使用这些变量?在模型中直接调用APP_CONFIG ['variable']是一种非导轨方式!例如,我可以在没有Rails环境的情况下使用这些模型.然后没有定义APP_CONFIG.

ATM我使用模型观察器并使用实例变量分配全局配置变量,如下所示:

def after_initialize model
  Mongoid.observers.disable :all do
    model.user_id = APP_CONFIG['user_id'])
    model.variable = User.find(model.user_id).variable
  end
end
Run Code Online (Sandbox Code Playgroud)

但这个解决方案看起来像一个猴子补丁.还有更好的方法吗?

或者我应该保持最简单,只需在新应用程序(而不是Rails应用程序)中定义APP_CONFIG哈希?

ruby-on-rails

5
推荐指数
1
解决办法
2297
查看次数

Mongoid - 具有引用数组的字段

我是mongoid的新人,我有两个基本的(我认为)问题.什么是在Mongoid中存储引用数组的最佳方法.这是我需要的简短示例(简单投票):

{
  "_id" : ObjectId("postid"),
  "title": "Dummy title",
  "text": "Dummy text",
  "positive_voters": [{"_id": ObjectId("user1id")}, "_id": ObjectId("user2id")],
  "negative_voters": [{"_id": ObjectId("user3id")}]
}
Run Code Online (Sandbox Code Playgroud)

它是正确的方式?

class Person
  include Mongoid::Document
  field :title, type: String
  field :text, type: String

  embeds_many :users, as: :positive_voters
  embeds_many :users, as: :negative_voters
end
Run Code Online (Sandbox Code Playgroud)

还是错了?

我也不确定,这种情况可能是一个糟糕的文档结构?如果用户已经投票并且不允许用户投票两次,我怎么能优雅地获得?也许我应该使用另一种文件结构?

ruby ruby-on-rails mongoid

2
推荐指数
1
解决办法
1304
查看次数

标签 统计

ruby-on-rails ×4

mongoid ×2

ruby ×2

mongodb ×1