标签: ruby

在Rails中测试时如何设置HTTP_REFERER?

我正在尝试测试控制器,我收到了这个错误.我理解错误,但不知道如何解决它.

test: on CREATE to :user with completely invalid email should respond with 
  redirect
(UsersControllerTest):ActionController::RedirectBackError: 
  No HTTP_REFERER was set in the request to this action, 
  so redirect_to :back could not be called successfully. 
If this is a test, make sure to specify request.env["HTTP_REFERER"].
Run Code Online (Sandbox Code Playgroud)

指定它在哪里?我试过这个:

setup { post :create, { :user => { :email => 'invalid@abc' } }, 
  { 'referer' => '/sessions/new' } }
Run Code Online (Sandbox Code Playgroud)

但得到了同样的错误.

用什么确切地指定它?我想我希望它返回的视图的URI:

'/sessions/new'
Run Code Online (Sandbox Code Playgroud)

这是他们的意思吗?


好的,所以事实证明他们的意思是这样做:

setup do
  @request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
  post :create, { :user => { :email …
Run Code Online (Sandbox Code Playgroud)

ruby testing ruby-on-rails

87
推荐指数
3
解决办法
3万
查看次数

获取目录中的文件夹列表

如何使用ruby获取某个目录中存在的文件夹列表?

Dir.entries() 看起来很近但我不知道如何限制文件夹.

ruby directory directory-listing

87
推荐指数
5
解决办法
6万
查看次数

版本要求中tilde-greater-than(〜>)的含义是什么?

~>宝石规格中版本要求的含义是什么?

hanna-0.1.12 depends on [haml (~> 2.2.8)]

ruby rubygems

87
推荐指数
3
解决办法
1万
查看次数

更正Ruby on Rails Database.yml文件的MySQL配置

我有这个配置:

development:
  adapter: mysql2
  encoding: utf8
  database: my_db_name
  username: root
  password: my_password
  host: mysql://127.0.0.1:3306
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Unknown MySQL server host 'mysql://127.0.0.1:3306' (1)
Run Code Online (Sandbox Code Playgroud)

有什么明显的东西我做错了吗?

ruby mysql yaml ruby-on-rails

87
推荐指数
2
解决办法
11万
查看次数

Ruby中$ stdout和STDOUT之间的区别

在Ruby中,$stdout(以美元符号开头)和STDOUT(在所有大写字母中)之间有什么区别?在进行输出重定向时,应该使用哪个以及为什么?这同样适用于$stderrSTDERR.

编辑:刚刚找到一个相关的问题.

ruby stdout stderr output-redirect

87
推荐指数
3
解决办法
3万
查看次数

如何从哈希中提取子哈希?

我有一个哈希:

h1 = {:a => :A, :b => :B, :c => :C, :d => :D}
Run Code Online (Sandbox Code Playgroud)

提取像这样的子哈希的最佳方法是什么?

h1.extract_subhash(:b, :d, :e, :f) # => {:b => :B, :d => :D}
h1 #=> {:a => :A, :c => :C}
Run Code Online (Sandbox Code Playgroud)

ruby hash

87
推荐指数
6
解决办法
5万
查看次数

Ruby - 访问多维哈希并避免访问nil对象

可能重复:
Ruby:IF语句中的Nils
是否有一种干净的方法可以避免在嵌套的params哈希中调用nil上的方法?

假设我尝试访问这样的哈希:

my_hash['key1']['key2']['key3']
Run Code Online (Sandbox Code Playgroud)

如果key1中存在key1,key2和key3,这很好,但是如果,例如key1不存在呢?

然后我会得到NoMethodError: undefined method [] for nil:NilClass.没有人喜欢这样.

到目前为止,我处理这个有条件的事情:

if my_hash['key1'] && my_hash['key1']['key2'] ...

这是否合适,还有其​​他Rubiest方式吗?

ruby hash conditional

87
推荐指数
3
解决办法
3万
查看次数

在Ruby中列出理解

为了做相当于Python列表的理解,我正在做以下事情:

some_array.select{|x| x % 2 == 0 }.collect{|x| x * 3}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点......也许有一个方法调用?

ruby list-comprehension

86
推荐指数
10
解决办法
4万
查看次数

Ruby的File.open和对f.close的需求

在大多数编程语言中,使用文件的流程是开放使用关闭的常识.然而,我在ruby代码中多次看到无法比拟的File.open调用,而且我在ruby文档中发现了这些宝石知识:

当垃圾收集器声明I/O流时,它们会自动关闭.

darkredandyellow friendly irc承担了这个问题:
[17:12]是的,而且,文件描述符的数量通常受操作系统的限制
[17:29]我假设在垃圾收集器清理之前你很容易用完可用的文件描述符起来.在这种情况下,您可能希望自己使用它们."垃圾收集者声称." 意味着GC将来会在某个时刻发挥作用.而且价格昂贵.明确关闭文件的原因很多.

  1. 我们需要明确关闭吗?
  2. 如果是,那么为什么GC会自动关闭?
  3. 如果不是那么为什么选择?

ruby file

86
推荐指数
2
解决办法
6万
查看次数

Rails管理员与ActiveAdmin

我一直在研究一些rails admin插件,并遇到了这些:

https://github.com/gregbell/active_admin

https://github.com/sferik/rails_admin

https://github.com/thoughtbot/administrate(编辑:稍后添加)

有关哪一个的建议.我需要它来支持模型关联和文件上传功能.

ruby ruby-on-rails ruby-on-rails-plugins ruby-on-rails-3 activeadmin

86
推荐指数
3
解决办法
2万
查看次数