草庐IT

and-testing-for-command-line-appl

全部标签

ruby - 导轨/RSpec : How to test #initialize method?

如何使用RSpec指定#initialize行为?例如这里:generator.rbclassGeneratorattr_accessor:seeddefinitialize(seed=nil)@seed=seed||pick_seedenddefpick_seedTime.now.to_iendendgenerator_spec.rbrequire'generator'describeGeneratorit"calls'pick_seed'methodunlessseedspecified"doendend我想设置从#initialize方法调用的pick_seed方法的期望值。

ruby-on-rails - CanCan load_and_authorize_resource 触发 Forbidden Attributes

我有一个使用强参数的标准RESTfulController。classUsersController在我的config/initializers中,我有文件strong_parameters.rbActiveRecord::Base.send(:include,ActiveModel::ForbiddenAttributesProtection)当我向CanCan的load_and_authorize_resource添加一个简单的调用时,我得到了1)UsersControllerPOSTcreatewithinvalidparamsre-rendersthe'new'template

ruby-on-rails - :something and somethingelse: 中的冒号放置有什么区别

这个问题在这里已经有了答案:Isthereanydifferencebetweenthe`:key=>"value"`and`key:"value"`hashnotations?(5个答案)关闭7年前。我很难理解:symbol和text:之间关于冒号位置的区别。我的理解是,当我们使用:symbol时,我们指的是该对象及其包含的任何内容,其中text:用于像变量一样为文本赋值。这是正确的还是有人可以详细说明用法。谢谢。

ruby-on-rails - rails rbenv : rails: command not found

我最近从RVM转移到Rbenv并且在尝试执行rails时出现如下错误Pauls-Air:~$railsrbenv:rails:commandnotfoundThe`rails'commandexistsintheseRubyversions:2.1.2 最佳答案 在ruby​​版本中通过命令行安装gem后,您必须按照文档here中的描述执行rbenvrehash和here例如:$rbenvinstall2.2.0$geminstallbundler$rbenvrehash$geminstallrails$rbenvrehash

ruby-on-rails - accepts_nested_attributes_for的替代方法-也许是virtus

我对rails比较陌生,最终找到了正确的使用accepts_nested_attributes_for的方法。然而,网络上有一些严肃的资源说,使用accepts_nested_attributes_for通常是一种不好的做法(比如这个one)。要避免accepts_nested_attributes_for需要做哪些更改,以及将附加类文件放在哪个文件夹中(我想需要一个附加类)。我读到virtus适合这个。对吗?下面是一个仍然使用accepts_nested_attributes_for的非常基本的示例(查找完整的示例here):模型classPerson控制器classPeopleCo

ruby-on-rails - railstutorial.org 中的 SessionsHelper : Should helpers be general-purpose modules for code not needed in views?

railstutorial.org有一个让我觉得有点奇怪的建议。Itsuggeststhiscode:classApplicationControllerincludeSessionsHelper使方法在ApplicationController中可用,是的,但它也使它们在任何View中都可用。我知道身份验证/授权是交叉的,但这真的是最好的地方吗?在我看来,这可能范围太广了。将实现有条件重定向(如railstutorial.org示例所做的)的before_filter的代码放在更通常包含View助手的模块中似乎令人惊讶。将View中不需要的功能放在ApplicationControl

ruby-on-rails - 如何在 ruby​​ Test::Unit 框架中运行单个 shoulda 上下文测试

我通常可以对方法“delete_user_test”使用以下命令行语法来测试常规Test::Unit方法:rubyfunctional/user_controller_test.rb-ndelete_user_test现在,当我将shoulda插件与Test::Unit一起使用时,我尝试使用如下相同的技术:...context"DeletingaUser"doshould"removeuserfromusertable"do...endend然后我尝试按如下方式运行单个测试:rubyfunctional/user_controller_test.rb-n"test:DeletingaU

ruby - 资源编译在服务器环境中崩溃,出现 : "NoMethodError: undefined method ` [ ]' for nil:NilClass"

为了这个我一直在努力。我一直与Assets管道关系不好,它总是给我带来麻烦..今天又是..当我尝试在本地编译我的Assets时,一切都很好:$RAILS_ENV=productionrakeassets:precompile--trace但是当我使用Capistrano部署时:cd/var/www/xxx/releases/20140717164232&&(RAILS_ENV=productionbundleexecrakeassets:precompile)它因以下错误而崩溃:rakeaborted!NoMethodError:undefinedmethod`[]'fornil:Ni

ruby-on-rails - 当我运行 `bundle exec rake test:prepare` 时它出错了,但是 `bundle exec rake db:test:prepare` 运行正常但有警告。这是怎么回事?

所以根据thislink一个是快捷方式包装器(所以我猜它们是一样的)。当我运行bundleexecrakedb:test:prepare时,我得到了这个错误:Don'tknowhowtobuildtask'test:prepare'/Users/aj/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/bin/ruby_executable_hooks:15:in`eval'/Users/aj/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/bin/ruby_executable_hoo

ruby - zsh : command not found: bundle (after gem install bundle)

为什么zsh:commandnotfound:bundle在geminstallbundler之后?我尝试设置path=(/usr/local/lib/ruby/gems/2.2/gems/~/bin/bin/sbin/usr/bin/usr/sbin/usr/local/bin/usr/local/sbin)在/etc/zshrc和source/etc/zshrc中无济于事。root@dev:/home/dev#geminstallbundlerSuccessfullyinstalledbundler-1.7.12Parsingdocumentationforbundler-1.7.