我正在寻找有关在Ruby/Rails中生成唯一哈希字符串的最佳实践的建议.通常我使用MD5,SHA等来执行此操作,但是为哈希选择源值并不是那么简单(时间戳并不总是优先使用).
所以我的问题是:
任何建议将不胜感激.
在过去一周,在一些gem安装或gem更新操作中,我收到了类似这样的错误:
ERROR: While generating documentation for sinatra-1.3.1 ... MESSAGE: error generating C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/doc/sinatra-1.3.1/rdoc/README_de_rdoc.html: incompatible encoding regexp match (UTF-8 regexp with IBM437 string) (Encoding::CompatibilityError)
类似的:
ERROR: While generating documentation for rest-client-1.6.7 ... MESSAGE: error generating C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/doc/rest-client-1.6.7/rdoc/README_rdoc.html: incompatible encoding regexp match (UTF-8 regexp with IBM437 string) (Encoding::CompatibilityError)
可能还有一个地方.我已经读过这篇文章,但是找不到我没写的代码和我无法控制的数据的解决方案.知道如何解决这个问题吗?
我有一个客户端正在为我的网站发送XML进行解析.我通常是一个PHP人,并且懂得如何通过PHP解析它,但我不知道如何用Ruby做同样的事情.客户说他们要将他们的XML文件发布到我的服务器(即下面的代码)
curl -X POST -H "Content-Type: text/xml" -d "@/path/to/file.xml" my-web-address.com/parser
Run Code Online (Sandbox Code Playgroud)
然后解析器处理程序页面需要能够检测到文件已发送给它,并解析它.这是否意味着Ruby只是查找任何POST请求?我怎么称呼POST内容(XML文件)变成一个变量来搞乱它?
我正在使用Nokogiri来解析XML.
doc = Nokogiri::XML(xml)
Run Code Online (Sandbox Code Playgroud)
欣赏任何见解!
我刚刚完成了Ruby on Rails教程的第10章,添加了编辑/更新,索引和销毁用户的功能.在我的应用程序中,一切似乎都正常工作,但是当我运行RSpec时,我的许多测试都失败了.
我设置的users_controller_spec与书的设置完全相同,我的应用程序代码也是一样的.一个问题可能是我使用Rails 3.1.1而不是他在书中使用的Rails 3.0?它对于以前的测试来说并不是一个问题,只是偶尔会出现几行不同的代码.在我开始第10.2.1节之后,问题就开始出现了.
以下是我看到的错误列表,如果您需要更多信息,请告诉我.谢谢!
1) UsersController GET 'index' for signed-in users should be successful
Failure/Error: response.should be_success
expected success? to return true, got false
# ./spec/controllers/users_controller_spec.rb:31:in `block (4 levels) in <top (required)>'
2) UsersController GET 'index' for signed-in users should have the right title
Failure/Error: response.should have_selector("title", :content => "All users")
expected following output to contain a <title>All users</title> tag:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>You are being <a href="http://test.host/signin">redirected</a>.</body></html> …Run Code Online (Sandbox Code Playgroud) delete_at只接受一个索引.使用内置方法实现这一目标的好方法是什么?不必是一个集合,也可以是一个索引数组.
arr = ["a", "b", "c"]
set = Set.new [1, 2]
arr.delete_at set
# => arr = ["a"]
Run Code Online (Sandbox Code Playgroud) 所以我有一个40000个元素的数组,我希望在每个元素上运行一个方法.
为了减少它需要的时间,我想在多个线程上运行它.也许将数组拆分成多个数组并在不同的线程或其他东西上运行.但我不知道如何开始.
假设数组是foo [],并且要调用的方法是bar().bar()返回一个字符串.代码执行后,我希望能够在一个大字符串中将所有字符串组合/加起来.
有没有办法做到这一点?我尽量让问题保持简单,但如果您想了解更多信息,请告诉我.
提前致谢!
运行以下代码以添加关联每次运行代码时都会输入多个条目:
store.categories << category
Run Code Online (Sandbox Code Playgroud)
有没有办法让它只在db中的两个模型之间输入唯一的关联?
我有两个模型:store并且category有一个名为的连接表categories.stores.
如何删除连接表中商店对象的所有关系数据?
我可以使用以下其中一种:
store.categories.destroy 要么 category.stores.destroy
注意:两个模型都是has_and_belongs_to_many(因此没有每个关联记录的标识符 - 只有store_id和category_id)
这在Rails中有什么作用?
create! do |user|
#initialise user
end
Run Code Online (Sandbox Code Playgroud)
我认为它创建了一个用户对象并将其保存到数据库中.它与仅仅说user.new(...)和user.save()?有什么不同?