小编GTD*_*Dev的帖子

Minitest和Rspec

我刚刚观看了Minitest 的Railscast.

使用RSpec与Minitest测试rails应用程序的优缺点是什么?我将失去哪些功能从RSpec转换为Minitest?

ruby testing rspec ruby-on-rails minitest

49
推荐指数
1
解决办法
1万
查看次数

Factory Girl + Mongoid嵌入式文件夹具

假设您有以下mongoid文档:

class User
    include Mongoid::Document
    embeds_one :name
end

class UserName
    include Mongoid::Document
    field :first
    field :last_initial

    embedded_in :user
end
Run Code Online (Sandbox Code Playgroud)

你如何创建一个工厂女工厂,初始化嵌入的名字和最后的名字?你也将如何处理这种embeds_many关系呢?

embed ruby-on-rails fixtures mongoid factory-bot

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

如何测试自定义验证器?

我有以下验证器:

# Source: http://guides.rubyonrails.org/active_record_validations_callbacks.html#custom-validators
# app/validators/email_validator.rb

class EmailValidator < ActiveModel::EachValidator
  def validate_each(object, attribute, value)
    unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
      object.errors[attribute] << (options[:message] || "is not formatted properly") 
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我希望能够在我的lib目录中的RSpec中测试它.到目前为止的问题是我不知道如何初始化EachValidator.

testing validation rspec ruby-on-rails activemodel

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

从github存储库全局安装ruby gem

我想全局安装ruby gem(sudo gem install capybara-webkit)但是我希望它从github存储库中的master安装.我知道这可以使用bundler完成,但我想从命令行完成,因为我主要使用pry进行编码.

ruby gem command-line github

33
推荐指数
1
解决办法
1万
查看次数

哪些算法难以在函数式语言中实现?

我正在研究函数式语言,我发现一些算法(特别是那些使用动态编程的算法)更难编写,有时在最坏的情况下运行时效率更低.是否有一类算法在具有不可变变量和副作用的函数式语言中效率较低?

是否有人可以指向我的参考,这将有助于编写更难编写的算法(可能是那些通过共享状态优化的算法)?

谢谢

algorithm state functional-programming side-effects dynamic-programming

28
推荐指数
2
解决办法
5410
查看次数

Rails lib目录

关于lib目录的问题.

使用lib目录有什么好的做法?
什么时候应该在app/models或app/helpers上使用?
并且有些相关如何让Rails 3包含lib目录中的文件?

谢谢

model-view-controller ruby-on-rails require

27
推荐指数
1
解决办法
9017
查看次数

模拟/测试Mongodb数据库Node.js

我正在学习nodejs,我有一个mongodb数据库,我必须与之交互.我目前正在考虑使用mocha作为单元测试框架,使用zombie.js作为验收测试框架.我想知道怎样才能进行全面的验收测试,这些测试打到了mongodb数据库.是否有框架/模块可以帮助用测试数据库替换数据库,或者mocha或zombie.js具有可以轻松用于替换数据库的功能.

还有一个框架类似于工厂(而不是夹具)创建数据库对象的想法.

我在rails世界中遇到的类似概念是在rspec中,有一个spec_helper.rb文件在运行测试之前运行,该文件设置项目配置以决定在运行测试时要命中哪个数据库.它在运行测试之前使用database_cleaner清理测试数据库.对于工厂,我使用Factory girl在rails世界中再次从数据库模式创建工厂对象.

谢谢

integration-testing mocha.js mongodb node.js zombie.js

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

递归地包括所有模型子目录

如何在模型和lib目录中递归加载所有目录?在application.rb中,我有以下几行:

config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
config.autoload_paths += Dir[Rails.root.join('lib', '{**}')]
Run Code Online (Sandbox Code Playgroud)

但他们似乎只添加了一个级别的模型和lib子目录.

谢谢

model directory-structure ruby-on-rails autoload

18
推荐指数
1
解决办法
9938
查看次数

配置从node_modules读取的requirejs

我正在尝试设置nodejs项目以使用requirejs.我用我的程序调用node r.js ./config/main.js,我的main.js如下所示:

var cs = require("coffee-script");
var requirejs = require("requirejs");

requirejs.config({
  nodeRequire: require,
  baseUrl: ".",
  paths: {
    cs: "cs",
    CoffeeScript: "CoffeeScript",
    csBuild: "csBuild",

    express: "express",
    nohm: "nohm",
    redback: "redback",
    _: "underscore",
    "connect-redis": "connect-redis",
    freebase: "freebase"
   }
});

console.log("hetet");
requirejs(["cs!./config/app"], function(app){
  console.log("closing")
});
Run Code Online (Sandbox Code Playgroud)

在app.coffee里面:

define((require) ->

  express = require("express")

  RedisStore = require("connect-redis")(express)
  app = express.createServer()

  config = require('cs!./config')

  require('cs!./setup')(app, express, RedisStore)
  require('cs!./routes')(app)
  require('cs!../src/server')

  app.listen(config.server.port)
)
Run Code Online (Sandbox Code Playgroud)

我似乎在main.js中失败并出现错误:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick …
Run Code Online (Sandbox Code Playgroud)

javascript node.js coffeescript requirejs node-modules

16
推荐指数
1
解决办法
1万
查看次数

具有嵌套资源的Angular JS ngResource

我正在尝试使用角度JS,我想从我的rails应用程序中定义的嵌套资源中获取数据.

我写了以下几行:

UserMission = $resource("/users/:user_id/user_missions/:id", {user_id: "@user_id", id: "@id"}, {update: {method: "PUT"}})
$scope.user_missions = UserMission.query()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

  Processing by UsersController#show as JSON
  Parameters: {"id"=>"user_missions"}
  User Load (0.6ms)  SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 1]]
  User Load (0.5ms)  SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", "user_missions"]]
Completed 404 Not Found in 10ms

ActiveRecord::RecordNotFound (Couldn't find User with id=user_missions):
  app/controllers/users_controller.rb:100:in `current_resource'
  app/controllers/application_controller.rb:34:in `authorize'
Run Code Online (Sandbox Code Playgroud)

我的rails路由组织如下:

resources :users do
  resources :user_missions
end
Run Code Online (Sandbox Code Playgroud)

我认为这归结于我不理解"@id".它说它来自angularjs网站的"数据对象" ,我不确定这意味着什么. …

json nested-forms nested-attributes ruby-on-rails-3 angularjs

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