有一段时间我一直在Ruby模块中包含一个完整的类.显然这不是我应该做的.似乎模块的要点是存储函数,然后可以将这些函数作为方法包含在新类中.
我不想要这个.我有一个类,我想保存在一个单独的文件中,我可以从其他文件访问.我怎样才能做到这一点?
谢谢.
如何GET在Ruby中使用参数发出HTTP 请求?
当你正在做的时候很容易做到POST:
require 'net/http'
require 'uri'
HTTP.post_form URI.parse('http://www.example.com/search.cgi'),
{ "q" => "ruby", "max" => "50" }
Run Code Online (Sandbox Code Playgroud)
但我认为没有办法将GET参数作为哈希使用传递'net/http'.
Rails一直很好,可以在MySql中自动插入格式正确的日期时间,而无需我多考虑.
但是,为了进行验证,我需要检查存储的mysql日期时间值(即2008-07-02 18:00:00)是否大于或小于"now".我可以打电话DateTime.now,Time.now但我怎么能把它转换为mysql喜欢的格式?
谢谢
collection_select和selectRails助手:我应该使用哪一个?
我无法在两种方式上看到差异.两个帮助程序都采用集合并在select标记内生成选项标记.有没有collection_select比这更好的场景select?或者我在这里缺少什么?
我编写的大多数代码都是在Ruby中,每隔一段时间,我会做一些错字,只会在一段时间后被捕获.当我的脚本运行很长的任务时,这很烦人,并返回发现我有一个错字.
是否有一个积极开发的Ruby工具lint工具可以帮助我克服这个问题?是否可以在一个使用大量源文件的系统中使用它,其中一些是动态加载的?
以此片段为例:
a = 20
b = 30
puts c
Run Code Online (Sandbox Code Playgroud)
要获得赏金,请告诉我一个工具,它将检测c变量为未创建/未定义.
我是新手,如果这很容易就很抱歉.我想知道上传图片并在Ruby on Rails中显示它们的最佳方法.我有一个博客,并希望在创建帖子时可以选择附加图片.
我对Ruby很新,今天我写了一个应用程序,你可以通过ARGV传递参数.但在我的应用程序中,我希望能够使用"获取".问题是,每次我尝试这样做,我都会收到错误.
这是一个简单的脚本,显示我的问题:
print "Say something! "
input = gets
Run Code Online (Sandbox Code Playgroud)
如果我这样称呼:
$ ruby script.rb this is arguments
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
script.rb:2:in `gets': No such file or directory - this (Errno::ENOENT)
from script.rb:2
Run Code Online (Sandbox Code Playgroud)
希望有人能够帮我解决这个问题,所以我可以继续我的Ruby之旅.:)
编辑:我知道"获取"不会检索传递给文件的参数."获取"将查询用户输入.我希望能够在我的应用程序中使用这两种方法.
我有一个产生的方法,看起来像:
def a_method(*params)
# do something
yield
# do something else
end
Run Code Online (Sandbox Code Playgroud)
如果传入一个块,我希望这个方法产生块; 并且如果没有传入块,该方法应该轻易地跳过yield sentense而不会崩溃,例如:
no block given (yield) (LocalJumpError)
Run Code Online (Sandbox Code Playgroud)
当然,最直接的方法是将方法更改为:
def a_method(*params, &block)
# do something
yield if block
# do something else
end
Run Code Online (Sandbox Code Playgroud)
但是不是更漂亮的方式吗?
我正在使用Ruby on Rails 3.0.10,我想以条件方式构建一个哈希键\值对.也就是说,如果条件匹配,我想添加一个键及其相关值:
hash = {
:key1 => value1,
:key2 => value2, # This key2\value2 pair should be added only 'if condition' is 'true'
:key3 => value3,
...
}
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做并保持代码的"良好"可读性?我"被迫"使用这种merge方法吗?