浏览 2021 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-14
本地: Mac OS X 10.7,Ruby 1.8.7,Rails 2.3.12 服务器:Ubuntu 8.04,Ruby Enterprise Edition 1.8.7,Rails 2.3.12 在服务器上,但凡是在 routes.rb 里面定义的 named route 在调用的时候都会出问题: #routes.rb map.resources :members,:member => { :articles => :get ... },:collection => {...} map.show_user 'users/:title.:format',:controller => 'users',:action => 'show' #在views中调用这样的代码时 <%= show_user_path(:title => user.name) %> <%= articles_member_path(member) %> #错误信息如下: wrong number of arguments (0 for 1) (eval):4:in `default_url_options' (eval):4:in `articles_member_path' app/views/users/_user.html.erb:12 试过了无数方法,皆无效,后来看到有人也有类似的问题 https://github.com/rails/rails/commit/6a6b4392c16c665eb713705f2b38e959a658eeef 但是别人是把改代码改成现在rails 2.3.12里面的代码解决问题,我是把代码回滚到以前的代码解决了问题,当时我就傻了,想不到啊,想不到啊。 解决办法就是把rails的代码给改了: # 注意两段代码 default_url_options 的参数 #/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/optimisations.rb 23 GLOBAL_GUARD_CONDITIONS = [ 24 "(!defined?(default_url_options) || default_url_options.blank?)", 25 "(!defined?(controller.default_url_options) || controller.default_url_options.blank?)", 26 "defined?(request)", 27 "request" 28 ] 改为 23 GLOBAL_GUARD_CONDITIONS = [ 24 "(!defined?(default_url_options) || default_url_options(nil).blank?)", 25 "(!defined?(controller.default_url_options) || controller.default_url_options(nil).blank?)", 26 "defined?(request)", 27 "request" 28 ] 由于本地测试是完全没有问题的,本地使用的东西和服务器唯一的不同就是Ruby的版本,本地用的是Ruby官方标准的 1.8.7 版本,服务器使用的是REE 1.8.7,目前我只能说是这个原因了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-15
验证你的猜测不是很简单么?本地安装REE 1.8.7就是了。
|
|
返回顶楼 | |
发表时间:2011-08-15
rubynroll 写道 验证你的猜测不是很简单么?本地安装REE 1.8.7就是了。
是啊 用rvm就一句话的事儿 |
|
返回顶楼 | |