草庐IT

the_mock

全部标签

ruby-on-rails - rails 4 : Flash message persists for the next page view

我在布局中使用以下代码来显示两种类型的即显消息:它们都工作正常,但无论何时触发一个,它仍会出现一次额外的页面View。我没有使用任何缓存gem。为什么会这样?我该如何解决? 最佳答案 使用flash.now而不是flash.flash变量旨在在redirect之前使用,并且它会在一个请求的结果页面上持续存在。这意味着如果我们不redirect,而不是简单的render一个页面,flash消息将持续存在两个请求:它出现在呈现的页面上但仍在等待重定向(即第二个请求),因此如果您单击链接,消息将再次出现。为了避免这种奇怪的行为,在渲染而不

用于散列 : each element the key and derive value from it 的 Ruby 数组

我有一个字符串数组,想用它来哈希。数组的每个元素都是键,我想根据该键计算值。是否有Ruby方法可以做到这一点?例如:['a','b']转换为{'a'=>'A','b'=>'B'} 最佳答案 您可以:a=['a','b']Hash[a.map{|v|[v,v.upcase]}] 关于用于散列:eachelementthekeyandderivevaluefromit的Ruby数组,我们在StackOverflow上找到一个类似的问题: https://stack

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 - 我得到 "found character that cannot start any token while scanning for the next token"

我已经在我的笔记本电脑上运行RubyonRails大约一个月了,但是当我想在这个实例中运行服务器时(它在几个小时前工作正常)我现在收到这条消息。请问如何让服务器再次运行?C:\Sites\LaunchPage>railssC:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/psych.rb:203:in`parse':():foundcharacterthatcannotstartanytokenwhilescanningforthenexttokenatline17column17(Psych::SyntaxError)fromC:/RailsIns

ruby-on-rails - Rails 迁移 : tried to change the type of column from string to integer

我使用railsgeneratemigrations命令在我的rails应用程序中创建了一个表。这是迁移文件:classCreateListings然后我想将纬度和经度存储为整数我试着跑:railsgeneratemigrationchangeColumnType该文件的内容是:classChangeColumnType我原以为列类型会发生变化,但是rake被中止并出现了以下错误消息。我想知道为什么这没有通过?我在我的应用程序中使用postgresql。rakedb:migrate==ChangeColumnType:migrating=========================

ruby - Rspec : expect vs expect with block - what's the difference?

刚刚学习rspec语法,我注意到这段代码有效:context"givenabadlistofplayers"dolet(:bad_players){{}}it"failstocreategivenabadplayerlist"doexpect{Team.new("Random",bad_players)}.toraise_errorendend但是这段代码没有:context"givenabadlistofplayers"dolet(:bad_players){{}}it"failstocreategivenabadplayerlist"doexpect(Team.new("Rando

ruby 和 "You must recompile Ruby with OpenSSL support or change the sources in your Gemfile"

我使用rvm将我的ruby​​升级到1.9.3-p392,还添加了2.0.0,每当我尝试使用这个版本时,当我运行我的bundle命令时,我都会收到这个错误。CouldnotloadOpenSSL.YoumustrecompileRubywithOpenSSLsupportorchangethesourcesinyourGemfilefrom'https'to'http'.InstructionsforcompilingwithOpenSSLusingRVMareavailableatrvm.io/packages/openssl.我已经按照几个不同的说明来解决这个问题。我尝试删除版本并

ruby-on-rails - RSpec中mock和mock_model有什么区别

我最近看到了不同的教程,其中人们同时使用了mock和mock_model函数。在RSpectutorialforcontrollers他们使用mock_model函数,但就在documentationofRSpec中,只有mock函数,没有mock_model我尝试自己运行一些测试,但我没有发现任何真正的区别,因为当我使用这两个函数中的任何一个时一切正常,所以有什么区别吗? 最佳答案 正如jenger所说,mock_model是为事件记录构建的扩展:这是1.2.6中的来源:defmock_model(model_class,opti

ruby - Ruby : Should we really believe the style guide? 中的失败与提升

Ruby提供了两种以编程方式引发异常的可能性:raise和fail,它们都是Kernel方法。根据文件,它们是绝对等价的。出于习惯,到目前为止我只使用了raise。现在我发现了一些建议(例如here),使用raise来捕获异常,使用fail来处理不应该处理的严重错误。但这真的有意义吗?当你在写一个类或模块时,在内部引发了一个问题,你用fail表示,你正在审查代码的编程同事可能会很高兴地理解你的意图,但是那个人使用我的代码很可能不会查看我的代码并且无法知道异常是由raise还是fail引起的。因此,我对raise或fail的谨慎使用不会影响他的决定,她是否应该处理它。有人能看出我的论点中

ruby-on-rails - 在 RSpec 中,mock 和 double 之间有什么区别?

在rspec中,您可以创建一个mock或一个double。这两个似乎几乎是同一件事,我在文档中找不到任何可以消除它们歧义的内容。有什么区别? 最佳答案 mock和stub都是更通用的double的别名。与context和describe一样,它们可以互换使用,以使规范的意图更加清晰。这在TheRSpecBook中有更详细的描述。. 关于ruby-on-rails-在RSpec中,mock和double之间有什么区别?,我们在StackOverflow上找到一个类似的问题: