我正在尝试测试控制器,我收到了这个错误.我理解错误,但不知道如何解决它.
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获取某个目录中存在的文件夹列表?
Dir.entries() 看起来很近但我不知道如何限制文件夹.
~>宝石规格中版本要求的含义是什么?
hanna-0.1.12 depends on [haml (~> 2.2.8)]
我有这个配置:
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中,$stdout(以美元符号开头)和STDOUT(在所有大写字母中)之间有什么区别?在进行输出重定向时,应该使用哪个以及为什么?这同样适用于$stderr和STDERR.
编辑:刚刚找到一个相关的问题.
我有一个哈希:
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) 假设我尝试访问这样的哈希:
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方式吗?
为了做相当于Python列表的理解,我正在做以下事情:
some_array.select{|x| x % 2 == 0 }.collect{|x| x * 3}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点......也许有一个方法调用?
在大多数编程语言中,使用文件的流程是开放使用关闭的常识.然而,我在ruby代码中多次看到无法比拟的File.open调用,而且我在ruby文档中发现了这些宝石知识:
当垃圾收集器声明I/O流时,它们会自动关闭.
darkredandyellow friendly irc承担了这个问题:
[17:12]是的,而且,文件描述符的数量通常受操作系统的限制
[17:29]我假设在垃圾收集器清理之前你很容易用完可用的文件描述符起来.在这种情况下,您可能希望自己使用它们."垃圾收集者声称." 意味着GC将来会在某个时刻发挥作用.而且价格昂贵.明确关闭文件的原因很多.
我一直在研究一些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