小编Pie*_*ois的帖子

我的 config/application.rb 中出现意外需求

config/application.rb我生成的spec/dummyRails 应用程序文件中的以下行有问题:

# railtie requires ...

Bundler.require(*Rails.groups)
require "tm_app_core" # This line should not exists according to rails application.rb template

module Dummy
  class Application < Rails::Application
    # ...
Run Code Online (Sandbox Code Playgroud)

我用来Rails::Generators::AppGenerator生成我的虚拟应用程序。但根据Rails application.rb 模板,它不应该包含以下行:

require "tm_app_core"
Run Code Online (Sandbox Code Playgroud)

这条线从哪里来?

我正在使用 Rails 3.2.13。tm_app_core是我的根目录的名称(例如在我的 CI 服务器上会有所不同)。

ruby-on-rails-3

5
推荐指数
0
解决办法
141
查看次数

如何在Draper gem中使用i18n翻译方法?

我使用Draper gem来装饰我的模型.在这里,我有非常经典的设置:

# app/decorators/subject_decorator.rb
class SubjectDecorator < ApplicationDecorator
  decorates :subject

  def edit_link
    h.link_to(h.t('.edit'), '#')
  end
end
Run Code Online (Sandbox Code Playgroud)

我使用i18n进行国际化.但是当我运行这个时,我得到:

Cannot use t(".edit") shortcut because path is not available
Run Code Online (Sandbox Code Playgroud)

所以我想知道以前是否有人这样做过?它应该很直接.

ruby-on-rails decorator internationalization ruby-on-rails-3

4
推荐指数
2
解决办法
2675
查看次数

如何使用RSpec对数组实例方法进行存根

我在String类中有一个实例方法,他们将Array实例方法称为“ shuffle”。为了让我使用RSpec测试该方法,我想将其存根。

vowels = %w(a e i o u y)
vowels.shuffle
Run Code Online (Sandbox Code Playgroud)

我试过了:

Array.stub(:shuffle).and_return(%w(a e i o u y))
[].stub(:shuffle).and_return(%w(a e i o u y))
Run Code Online (Sandbox Code Playgroud)

但是没有任何工作:((我在这里错过了什么?也许是在嘲笑?但是那我该嘲笑什么...)

谢谢。

ruby rspec stub rspec2

4
推荐指数
1
解决办法
2767
查看次数

如何计算mongo中的数组元素

我知道有很多话题在讨论那个但我无法弄清楚我的实现出了什么问题.

我有以下文件:

{
  "_id" : ObjectId("510a353929e16756d5000009"),
  "skills" : [
    [
      "UserEmbed::Author::Skills::Copywriting",
      "UserEmbed::Author::Skills::Proofreading",
      "UserEmbed::Author::Skills::Proofreading",
      "UserEmbed::Author::Skills::Translation",
      "UserEmbed::Author::Skills::Translation",
      "UserEmbed::Author::Skills::Translation"
    ]
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

{
  "UserEmbed::Author::Skills::Copywriting": 1,    
  "UserEmbed::Author::Skills::Proofreading": 2,
  "UserEmbed::Author::Skills::Translation": 3
}
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的(首先$group是从我的原始文档结构中获取上述文档):

aggregate([ { $group: { _id: "$_id", skills: { $addToSet : "$author_profile.skills._type" } } }, { $unwind : "$skills" }, { $group : { _id : "$skills", count: { $sum : 1 } } }])
Run Code Online (Sandbox Code Playgroud)

返回类似这样的内容(与其他文档一起):

{
  "_id" : [
    "UserEmbed::Author::Skills::Copywriting",
    "UserEmbed::Author::Skills::Copywriting",
    "UserEmbed::Author::Skills::Copywriting",
    "UserEmbed::Author::Skills::Translation",
    "UserEmbed::Author::Skills::Translation",
    "UserEmbed::Author::Skills::Translation"
  ],
  "count" : 1 …
Run Code Online (Sandbox Code Playgroud)

mongodb

4
推荐指数
1
解决办法
3623
查看次数

Mongodb:如何避免锁定大集合更新

我有一个events2.502.011元素的集合,并希望对所有元素执行更新.不幸的是,由于写锁定,我面临很多mongodb错误.

问题:如何确保所有事件都正确更新,以避免这些错误?

以下是有关我的活动集合的信息:

> db.events.stats()
{
    "count" : 2502011,
    "size" : 2097762368,
    "avgObjSize" : 838.4305136947839,
    "storageSize" : 3219062784,
    "numExtents" : 21,
    "nindexes" : 6,
    "lastExtentSize" : 840650752,
    "paddingFactor" : 1.0000000000874294,
    "systemFlags" : 0,
    "userFlags" : 0,
    "totalIndexSize" : 1265898256,
    "indexSizes" : {
        "_id_" : 120350720,
        "destructured_created_at_1" : 387804032,
        "destructured_updated_at_1" : 419657728,
        "data.assigned_author_id_1" : 76053152,
        "emiting_class_1_data.assigned_author_id_1_data.user_id_1_data.id_1_event_type_1" : 185071936,
        "created_at_1" : 76960688
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个事件的样子:

> db.events.findOne()
{
  "_id" : ObjectId("4fd5d4586107d93b47000065"),
  "created_at" : ISODate("2012-06-11T11:19:52Z"),
  "data" : {
    "project_id" : ObjectId("4fc3d2abc7cd1e0003000061"), …
Run Code Online (Sandbox Code Playgroud)

mongodb

4
推荐指数
1
解决办法
2349
查看次数

将JSON列类型迁移到HSTORE列类型

我目前有以下数据库模式:

create_table :user_actions do |t|
  t.integer  :emitter_id
  t.string   :emitter_type
  t.integer  :target_id
  t.string   :target_type
  t.json     :payload
  t.timestamps
end
Run Code Online (Sandbox Code Playgroud)

而且我想将这个payload领域迁移jsonhstore.

执行以下操作:

change_column :user_actions, :payload, :hstore
Run Code Online (Sandbox Code Playgroud)

导致以下错误消息:

PG::DatatypeMismatch: ERROR:  column "payload" cannot be cast automatically to type hstore
HINT:  Specify a USING expression to perform the conversion.
Run Code Online (Sandbox Code Playgroud)

不知道如何使用USING提示以及在不丢失任何数据的情况下执行此迁移的最佳方法是什么?

postgresql activerecord hstore ruby-on-rails-4

4
推荐指数
1
解决办法
3954
查看次数