Tag: ruby

Rails的ActiveRecord:查找除当前用户以外的所有用户

我觉得这应该很简单,但是我的大脑在短路。 如果我有一个代表当前用户的对象,并且想要查询除​​当前用户以外的所有用户,那么考虑到当前用户有时可能是nil ,我该怎么做呢? 这就是我现在正在做的事情: def index @users = User.all @users.delete current_user end 我不喜欢的是我正在做查询结果的后处理。 除了感觉有点不对,我不认为这将很好地工作,如果我把查询转换为与will_paginate运行。 任何build议如何使用查询做到这一点? 谢谢。

如何在Ruby中将string转换为常量?

如何将string"User"转换为User ?

如何在Ruby中创build一个整数for循环?

在我看来,我有一个variables“x”。 我需要显示一些代码“x”次数。 我基本上想要build立一个像这样的循环: for i = 1 to x do something on (i) end 有没有办法做到这一点?

在rails console Session中识别路由

假设我有一个路由器助手,我想要更多的信息,比如blogs_path,我如何在控制台中find背后的映射语句。 我试图生成和识别,我得到了无法识别的方法错误,即使我确实需要'config / routes.rb'

Rails – 系统找不到指定的path

我用railsinstaller在Windows上安装了Rails和Ruby。 问题是,当我运行rails命令时,它给了我:“系统找不到指定的path。 我运行的是Windows 7 x64和Ruby 2.20。 我试着卸载Rails并再次安装; 这并没有帮助。 Ruby命令就像ruby -v一样执行,但是rails -v=工作。

PG ::错误:错误:新编码(UTF8)不兼容

我已经从源安装postgresql-9.2.4 ,现在在rails应用程序执行时: rake db:create命令我得到: $ bin/rake db:create RAILS_ENV="test" PG::Error: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) HINT: Use the same encoding as in the template database, or use template0 as template. : CREATE DATABASE "verticals_test" ENCODING = 'unicode' /home/vagrant/my-project/.gems/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:652:in `exec …. bin/rake:16:in `load' bin/rake:16:in `<main>' Couldn't create database […]

在Ruby中查找内存泄漏的原因

我在Rails代码中发现了内存泄漏 – 也就是说,我发现了什么代码泄漏,但没有发现泄漏的原因 。 我已经减less到一个不需要Rails的testing用例: require 'csspool' require 'ruby-mass' def report puts 'Memory ' + `ps ax -o pid,rss | grep -E "^[[:space:]]*#{$$}"`.strip.split.map(&:to_i)[1].to_s + 'KB' Mass.print end report # note I do not store the return value here CSSPool::CSS::Document.parse(File.new('/home/jason/big.css')) ObjectSpace.garbage_collect sleep 1 report 据说ruby-mass可以让我看到内存中的所有对象。 CSSPool是一个基于racc的CSSparsing器。 /home/jason/big.css是一个1.5MB的CSS文件 。 这输出: Memory 9264KB ================================================== Objects within [] namespace […]

用一个以上的单词来命名一个gem是否应该使用破折号或下划线?

我对gem命名约定是什么时,gem名称有多个单词感到困惑。 思维 – 狮身人面像是gem的名称,但该gem的基础* .rb文件是lib / thinking_sphinx.rb(下划线) acts-as-taggable-on是gem的名字,base * .rb文件被称为lib / acts-as-taggable-on.rb(连字符) factory_girl在gem名称和基本* .rb文件的名称中使用下划线 如果使用下划线或连字符,这是否重要? 这里有什么新的共识吗?

如何在请求规范中存储ApplicationController方法

我需要在Rspec / capybara请求规范中存根current_user方法的响应。 该方法在ApplicationController定义,并使用helper_method。 该方法应该简单地返回一个用户ID。 在testing中,我希望这种方法每次都返回相同的用户ID。 或者,我可以通过在spec(这是current_user返回的内容)中设置session[:user_id]来解决我的问题…但是这似乎也不起作用。 这两者中的哪一个可能? 编辑: 这是我得到的(它不工作,它只是运行正常的current_user方法)。 require 'spec_helper' describe "Login" do before(:each) do ApplicationController.stub(:current_user).and_return(User.first) end it "logs in" do visit '/' page.should have_content("Hey there user!") end end 也不工作: require 'spec_helper' describe "Login" do before(:each) do @mock_controller = mock("ApplicationController") @mock_controller.stub(:current_user).and_return(User.first) end it "logs in" do visit '/' page.should have_content("Hey there user!") end […]

Ruby按多个值sorting?

我有一个哈希数组: a=[{ 'foo'=>0,'bar'=>1 }, { 'foo'=>0,'bar'=>2 }, … ] 我想先sorting数组中的每个散列的'foo',然后'bar'。 谷歌告诉我,这是如何做到的: a.sort_by {|h| [ h['foo'],h['bar'] ]} 但是这给了我ArgumentError“arrays与arrays比较失败”。 这是什么意思?