草庐IT

run_loop

全部标签

ruby-on-rails - 测试 "infinite loops"的最佳做法是什么?

我的基本逻辑是在某个地方运行一个无限循环并尽可能地测试它。无限循环的原因并不重要(游戏的主循环,类似守护进程的逻辑......)而且我更多地询问关于这种情况的最佳实践。让我们以这段代码为例:moduleBlahextendselfdefrunsome_initializer_methodloopdosome_other_methodyet_another_methodendendend我想使用Rspec测试方法Blah.run(我也使用RR,但简单的rspec将是一个可接受的答案)。我认为最好的方法是分解更多,比如将循环分离成另一个方法或其他东西:moduleBlahextendsel

ruby-on-rails - 附加到 rake db :seed in rails and running it without duplicating data

Rakedb:seed使用应用程序的默认数据库值填充您的数据库,对吗?那么如果您已经有一个种子并且需要添加到它(您添加一个需要种子的新功能)怎么办?根据我的经验,当我再次运行rakedb:seed时,它已经添加了现有内容,因此现有内容变成了两倍。我需要的是添加一些种子,当运行时,它应该只添加最新的种子,而忽略现有的种子。我该怎么做?(我通常采用的肮脏的、菜鸟的方式是截断我的整个数据库然后再次运行种子,但这在生产中不是很聪明,对吧?) 最佳答案 更简洁的方法是使用find_or_create_by,如下所示:User.find_or_

ruby-on-rails - rails : getting data from a table for each iteraction of a loop

我有一个循环(针对@dataset中的项目),我希望在每次迭代中从另一个表中获取不同的数据并进行一些将在View中打印的操作。我无法从循环中使用的数据集中获取此数据。如何根据MVC执行此操作?我可以将代码放入循环中,在View中,但我认为这太可怕了。我必须使用助手来执行此操作,并从View中调用该函数吗? 最佳答案 如果你有一个表,想从另一个表中获取数据,通常是在has_many关系的情况下。例如,我们有@people(Person模型),每个人都有has_many地址(Address模型)。在这些情况下,最好的办法就是这样做#Co

ruby-on-rails - ruby rails : How to run things in the background?

当一个新资源被创建并且它需要在资源准备好之前做一些冗长的处理时,我如何将那个处理发送到后台在那里它不会阻止我的网络应用程序的当前请求或其他流量吗?在我的模型中:classUser 最佳答案 您绝对应该查看以下Railscast:http://railscasts.com/episodes/127-rake-in-backgroundhttp://railscasts.com/episodes/128-starling-and-worklinghttp://railscasts.com/episodes/129-custom-daem

ruby-on-rails - '需要': cannot load such file -- 'nokogiri\nokogiri' (LoadError) when running `rails server`

我正在使用DevKit在Windows8.1上运行全新安装的Ruby2.2.1。安装后我运行:geminstallrailsrailsnewtestappcdtestapprailsserver保留其他所有默认值。进程在最后一行失败,我没有运行服务器,而是收到错误消息in'require':cannotloadsuchfile--'nokogiri\nokogiri'(LoadError)每次都会发生这种情况,我环顾四周并尝试了我发现的所有方法来修复它,但到目前为止没有任何效果。这里的问题是什么?如何让一个简单的测试Rails应用程序正常工作? 最佳答案

javascript - Chrome : Auto-run for Javascript code?

有人知道是否有某种方法可以为浏览器中加载的每个页面运行一段Javascript代码吗?有点像插入head里面的第一件事标签。我对Chrome的解决方案最感兴趣。也许这是Chrome扩展程序的工作? 最佳答案 查看Tampermonkey,它是一个用于运行用户脚本的Chrome扩展(相当于FF的GreaseMonkey)。要在每个页面上运行脚本,您需要在脚本开头附近有这样一行://@include*这是一个tutorial关于编写用户脚本。 关于javascript-Chrome:Auto

javascript - Angular Run Block - 使用 UI-Router $stateProvider 来解析 Promise

UI-Router不同于Angular的ngRoute。它支持普通ngRoute可以做的所有事情以及许多额外的功能。我正在将我的Angular应用程序从ngRoute更改为UI-Router。但我不太清楚如何以编程方式注入(inject)resolve函数-我在Controller和config之外使用的代码片段。因此,使用标准Angular的ngRoute我可以在Angular运行中动态注入(inject)我的resolvepromiseblock:app.run(function($route){varroute=$route.routes['/'];route.resolve=r

javascript - grunt.task.run() 不工作

我正在尝试在我的express应用程序中使用grunt。我有这样的东西:vargrunt=require('grunt');require(process.cwd()+'/gruntfile.js')(grunt);grunt.task.run('development');但是这个任务好像不行。(没有错误输出到控制台)但是,如果我直接在控制台“gruntdevelopment”中运行,它就可以正常工作。 最佳答案 grunt.task.run只是将一个任务添加到队列中,因此它可以在现有任务中运行,但不能在外部脚本中运行。这是我从g

javascript - Angular : Mixing provider and custom service in module's config/run

我想做这样的事情:angular.module('app',[]).config(['$httpProvider','customAuthService',($httpProvider,customAuthService)->$httpProvider.defaults.transformRequest.push(data)->ifcustomAuthService.isLoggedIndata['api_key']={token:@token}])根据Angularjsdoc,我不能在我的module的configblock中执行此操作,因为那里不允许自定义服务,我也不能在run中执

javascript - Vue.js "npm run build"但 Vue.js 未绑定(bind)到 DOM/工作

这里是Vue.js的新手。在MacOS上使用版本:$npm--version4.6.1$vue--version2.8.1我正在使用webpack-simpleinit和vue-cliforvue2.0。我在我的Django项目文件夹中为vue内容创建了一个名为frontend的文件夹。目录结构:$tree├──README.md├──asnew│  ├──__init__.py│  ├──migrations│  ├──models.py│  ├──settings.py│  ├──templates│ └──index.html│  ├──urls.py│  ├──views.py