#13 楼 @help5305fff 浏览器后退按钮
{:url => "你好"}.to_query
=> "url=%E4%BD%A0%E5%A5%BD"
4000 个查询,可以分成 40 个查询,每次 100 个?
Rails 的数组有方法 #in_groups_of
和 #in_groups
,可以给数据分组。分好组后,用select xxx where id in (a, b, c)
这种查询就减少查询次数了。
默认一次 insert 就是一次事务。如果把所有的 insert 用一个事物包起来,会快很多。前提是保证不要回滚啊。
浏览器在 POST 数据时,会先编码(URL encode),再发送。所以用其他方式发送数据时,也要在客户端先编码。
空格会被编码为 + 号,所以 Rails 的解码时,会把 + 号解码为空格。
Faraday 有个选项是 url_encoded,可以在 POST 数据时先编码,不用自己操心。 https://github.com/technoweenie/faraday
如果不能修改客户端的数据,也可以在服务器端得到 POST 的原始数据(似乎是 raw_post
方法。目前没有环境不容易测试,抱歉了)
不要百度了,在官方的 guides 上找一下,有专门的一章。
ps: 我记得 2.3.5 的模型属性的国际化有 bug,如果属性名是两个单词,得用空格连起来,而不是下划线。
#2 楼 @happypeter 是不是忘记贴具体的地址了……?
推荐一个 slide - Ruby 1.9 http://www.slideshare.net/ihower/ruby-19-1311075
CSDN 最受程序喜爱的雇主称号…… 最受程序喜爱……
windows 下的 bitnami redmine 一路点击下去就装好了,包括 mysql, imagemagick 等,安装在独立目录,而且能安装好 windows 服务,自动启动。
rubymine(商业软件,收费的)可以单步调试。两年前在 windows 下用过,不知道现在能不能
题外话:请求地址里包含用户名和密码不安全,因为在访问日志里,会记录 GET 请求的地址。这样和明文保存用户名密码没什么区别了。
ruby 开发快,若能做出几个项目,有用户或者有收入,就会成为坚持下去的动力吧。
学校里知道 ruby 的寥寥无几。学校老师瞧不起 web 开发,学生也会受影响。校友前来加油了。
如何更新的?
有没有带上tour_around
的 id?
使用 Product.delete_all
不会执行 callback
#1 楼 @c2h2 ruby 可以用 net-ping https://github.com/djberg96/net-ping
这个时候请求已经到 rails 了,所以得看 rails 的 log,一般是 log/production.log
试试先安装 devkit
没有遇到过这类书,不过有携程 UED 的几篇 blog 可供参考
浏览器是怎样工作的(一):基础知识 http://ued.ctrip.com/blog/?p=3287 浏览器是怎样工作的:渲染引擎,HTML 解析(连载二) http://ued.ctrip.com/blog/?p=3295
这么多数据,是不是要 map-reduce 了?
支持教主,过段时间入手玩玩 :)
Ruby-1.8.7 里,没有 Base64.strict_encode64
方法。
Rails 里的 ActiveSupport::Base64.encode64
会包含换行;但 ActiveSupport::Base64.encode64s
没有折行,其实就是把换行替换为空。所以某些情况下应该使用后者。
#6 楼 @shooter 看 http://seclists.org/oss-sec/2012/q2/att-504/3-2-sql-injection.patch 这个补丁里的测试,我的理解是:
Post.where(:id => { :posts => {:author_id => 10} }).first
生成的 SQL 语句会是
SELECT "posts".* FROM "posts" where "posts"."author_id" =10 LIMIT 1
这样改变了 Post.where(:id => params[:id])
这个根据 id 查 Post 的逻辑,被改成了根据 author_id 查 Post 了。
devise 用了这个