Tag: ruby

Rspec 3如何testingFlash消息

我想用rspec来testing控制器的动作和flash消息的存在。 行动 : def create user = Users::User.find_by_email(params[:email]) if user user.send_reset_password_instructions flash[:success] = "Reset password instructions have been sent to #{user.email}." else flash[:alert] = "Can't find user with this email: #{params[:email]}" end redirect_to root_path end 规格 : describe "#create" do it "sends reset password instructions if user exists" do post :create, email: "email@example.com" expect(response).to redirect_to(root_path) […]

如何在代理之后使用bundler?

我从sudo bundle install命令获得以下输出: Fetching source index for `http://rubygems.org/` Could not reach rubygems repository `http://rubygems.org/` Could not find gem 'rspec-rails (>= 2.0.0.beta.22, runtime)' in any of the gem sources. 我有$ http_proxy设置正确,我已经添加了gem:–http-proxy =我的代理 〜/ .gemrc。 这些设置是什么让我的gem命令的工作,我希望他们会翻译捆绑,但没有这样的运气。 想到sudo可能不会inheritance我所有的环境,我也将这些设置添加到我的root用户,但是nada。 在这一点上,打包程序正在阻止我部署我的应用程序,而且我可以发现很less有人遇到这个问题。 如果没有人有答案,我将被迫从我的Rails应用程序撕裂捆绑器(我不介意做…)

如何在Ruby on Rails的form_for中使用hidden_​​field?

我已经读过了 ,但是我对RoR很陌生,所以我在理解它的时候有点麻烦。 我正在使用表单来创build一个新的请求logging,我需要发送的所有variables已经存在。 这里是我需要发送的数据(这是一个do循环): :user_id => w[:requesteeID] :requesteeName => current_user.name :requesteeEmail => current_user.email :info => e 这是我的表单,它到目前为止工作,但只发送一切NULL值: <% form_for(:request, :url => requests_path) do |f| %> <div class="actions"> <%= f.submit e %> </div> <% end %> 我如何使用hidden_​​fields发送已有的数据? 谢谢阅读。

我应该使用哈姆或erb或erubis潜在的高stream量网站?

最近我一直在和Haml玩,真的很喜欢结果代码对我来说是开发者。 我也不太担心devise师能够消费或改变它…我们是一个小团队。 也就是说,开始一个项目的工作,我们相信会产生相当多的stream量(谁不?)。 我担心有些事情我只是不知道哈姆。 有没有什么可以做的哈姆不能? haml是否会随着项目的增长而产生负面影响? 还有其他的事情应该考虑吗? 最后… Haml如何比较速度与erubis? 我看到它现在打败了erb和eruby … 谢谢!

Ruby 1.87 vs 1.92 Date.parse

在Ruby 1.87中,我可以这样做: Date.parse ("3/21/2011") 现在在1.9.2我得到: ArgumentError:无效的date 有任何想法吗?

如何从我的Rails模型中删除一列?

我需要从我已经创build的轨道模型中删除几列,并在该模型中有一些行条目。 怎么做? 任何具有修改架构在轨道的细节的链接? 我正在使用rails版本3。

如何通过reflection获得主动logging关联

对于普通的列,你可以通过columns类的方法得到它们。 但是,如果在关系方法中设置了foreign_key选项,那么关联可能会被命名为完全不同。 例如,给出 class Post has_many :comments, :foreign_key => :message_id # this is a contrived example end 如果我做Post.column_names我可以在message_id ,但有什么办法可以得到comments ?

解决恼人的“警告:已经初始化常量”的消息

今天,我已经偶然发现了一个棘手的问题与Ruby常量。 在我们的团队中有人创build了一个模块,包含在多个模型中。 在我们的(spec)testing输出中,这会产生警告信息,例如: /home/ayrton/project/lib/life_cycle.rb:5:警告:已经初始化常量RESET 解决这个问题的一个方法是,像这样声明你的常量: module LifeCycle unless (const_defined?(:RESET)) RESET = 'reset' end #… end 我还读过一篇由Avdi Grimm撰写的博客文章,它提供了一个替代解决scheme ,我想知道你的观点是什么,关于这个问题。

查找与给定条件匹配的元素的索引

给定一个数组,我怎么能find符合给定条件的元素的所有索引? 例如,如果我有: arr = ['x', 'o', 'x', '.', '.', 'o', 'x'] 要find项目是x所有索引,我可以这样做: arr.each_with_index.map { |a, i| a == 'x' ? i : nil }.compact # => [0, 2, 6] 要么 (0..arr.size-1).select { |i| arr[i] == 'x' } # => [0, 2, 6] 有没有更好的方法来实现这一点?

Ruby 1.9.2和Rails 3无法打开rails控制台

[gkaykck@main myApplication]$ rails console /usr/local/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load — readline (LoadError) from /usr/local/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>' from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:3:in `require' from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:3:in `<top (required)>' from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:20:in `require' from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:20:in `<top (required)>' from script/rails:6:in `require' from script/rails:6:in `<main>' 我已经在ruby1.9.2p136安装轨3,这是好的我猜。 但我无法启动轨道控制台,它给了我复制的错误。 该应用程序与ruby1.8.7工作得很好,我从来没有看到这样的错误。 任何想法可能是什么?