Tag: ruby

Ruby的隐藏function

继续“隐藏的…特性”,让我们分享一下Ruby编程语言鲜为人知的但有用的特性。 尝试限制与核心Ruby的讨论,没有任何Ruby on Rails的东西。 也可以看看: C#隐藏的function Java的隐藏function JavaScript的隐藏function Ruby on Rails的隐藏function Python的隐藏function (请每个答案只有一个隐藏的function。) 谢谢

新数据不会持久化到Postgres上的Rails数组列

我有一个types为text的朋友列的用户模型。 这个迁移被运行到与postgres一起使用数组function: add_column :users, :friends, :text, array: true 用户模型有这个方法: def add_friend(target) #target would be a value like "1234" self.friends = [] if self.friends == nil update_attributes friends: self.friends.push(target) end 下面的规范通过,直到我调用#add_friend后添加#add_friend : it "adds a friend to the list of friends" do user = create(:user, friends: ["123","456"]) stranger = create(:user, uid: "789") user.add_friend(stranger.uid) user.reload #turns the […]

使用Bullet和RSpec gems减lessn + 1个查询

使用RSpec的Bullet Gem有效的方法是什么? 现在,我觉得如果我使用它与我目前的unit testing框架,我得到了很多的通知或testing失败,因为在testing本身n + 1查询是不相关的发生在我的生产应用程序,如检查价值或联想。 因此,修复n + 1故障并不需要在我的控制器或模型上设置任何东西,而是需要在我的testing设置中设置一些东西来避免发生特定的错误,而且我的应用程序没有真正的性能改进。

这是什么&:上次的Ruby构造调用?

可能重复: 在Ruby中map(&:name)是什么意思? 什么是像survey.map(&:questions).flatten.compact调用,所以我可以find更多的信息:)。 这个&:解决了什么问题?究竟是什么? 它在其他语言中使用吗?

如何解决“你的Ruby版本是1.9.3,但你的Gemfile指定为2.0.0”

我创build了一个Ruby项目,但是在运行bundle update和bundle install会返回一个错误: Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0 它的形象是: http : //i.imgur.com/dZMhI11.png?1 我的gemfile是: ruby '2.0.0' #ruby-gemset=railstutorial_rails_4_0 gem 'rails', '4.0.0' group :development do gem 'sqlite3', '1.3.8' end gem 'sass-rails', '4.0.0' gem 'uglifier', '2.1.1' gem 'coffee-rails', '4.0.0' gem 'jquery-rails', '3.0.4' gem 'turbolinks', '1.1.1' gem 'jbuilder', '1.0.2' group :doc do gem 'sdoc', '0.3.20', […]

通过Ruby避免AppleScript:rb-appscript或rubyosa?

你好同胞的Mac ruby​​ists和AppleScript的仇敌, 对于那些对rubyosa和rb-appscript有经验的人,我想听听每个人的优缺点,你决定坚持哪一个,哪一个你会推荐一个完全不是AppleScript的人ruby老前辈。 还有,我还有其他的select吗? 另外,任何处理AppleScript方面的提示(例如浏览字典等)也是受欢迎的。 看到一些示例代码也有很大帮助。

如何在Ruby中复制散列?

我承认,我是一个ruby新手(现在写耙脚本)。 在大多数语言中,复制构造函数很容易find。 半个小时的search没有发现ruby。 我想创build一个散列的副本,以便我可以修改它,而不会影响原始实例。 一些预期的方法不能按预期工作: h0 = { "John"=>"Adams","Thomas"=>"Jefferson","Johny"=>"Appleseed"} h1=Hash.new(h0) h2=h1.to_hash 与此同时,我采取了这个不起眼的解决办法 def copyhash(inputhash) h = Hash.new inputhash.each do |pair| h.store(pair[0], pair[1]) end return h end

'require':无法加载这样的文件 – 运行`rails server`时'nokogiri \ nokogiri'(LoadError)

我正在使用DevKit在Windows 8.1上运行Ruby 2.2.1的全新安装。 安装后我运行: gem install rails rails new testapp cd testapp rails server 所有其他的东西都是默认的 该进程在最后一行失败,而不是运行服务器,我得到错误消息 in 'require': cannot load such file — 'nokogiri\nokogiri' (LoadError) 它每次都会发生,我环顾四周,试图find解决问题的一切,但目前为止还没有发挥作用。 这里有什么问题,我如何得到一个简单的testingRails应用程序工作?

在Windows 7上安装Ruby MYSQL2 gem安装

我试图在Windows 7上安装mysql2 gem我从mysql网站下载了连接器,并将libmysql.dll放在ruby200 \ bin 然后做gem安装mysql2 这些是我在这里昏迷的结果? Temporarily enhancing PATH to include DevKit… Building native extensions. This could take a while… ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. C:/Ruby200/bin/ruby.exe extconf.rb checking for rb_thread_blocking_region()… yes checking for rb_wait_for_single_fd()… yes checking for rb_hash_dup()… yes checking for rb_intern3()… yes *** extconf.rb failed *** Could […]

哈希火箭已被弃用?

引用良好的RIP Hash火箭文章似乎暗示了Hash Rocket语法( :foo => "bar" )已被弃用,以支持新到Ruby JSON风格的散列( foo: "bar" ),但是我找不到任何明确的引用,说明从Ruby 1.9开始,Hash Rocket表单实际上已被弃用/未被使用。