列举一下 Rails 框架内部程序问题。前两个是我个人的亲身体会,后面两个,相信大家现在都很熟悉了。
Rails version 3.0.12
需要在 controller 中,显示的声明 layout 的调用。即使父类有声明,子类也需要再次声明。 否则,报如下错误:
ArgumentError in FoolController#index wrong number of arguments (2 for 1)actionpack (3.0.6) lib/abstract_controller/layouts.rb:272:in `template_exists?'
Rails 源代码 ,第272行。
if template_exists?("#{_implied_layout_name}", #{_prefix.inspect})
上面的 if 条件,运行时必定报错!下面的语句,同样需要显示指明 layout。
render :template=>template, :layout => "application"
Rails 3.0 automatic loading for helper :all。原文链接。
项目中存在 helper 方法命名冲突的可能性很大!
简单的解决方法:重新命名,保证不重复命名。
其他替代方法:Decorators etc.
黑客,可以很容易的篡改表单提交的数据,而且,程序会真实保存。原文链接。
Rails 3.2 已经完善,需要显示在 model 中声明 attr_accessible , 才能对其赋值,
提高了项目的安全性。
Extremely critical Ruby on Rails bug
Rails这次漏洞有点严重啊
这个漏洞很严重,建议立即升级到下列修复版本:2.3.15, 3.0.19, 3.1.10 or 3.2.11
基本步骤:修改 Gemfile , 然后,执行 bundle update rails
2013-01-13