在升级到Ruby 3.0.6以及随后的Rails www.example.com之后6.1.7.3,我们在视图中使用的所有URL帮助程序都出现了问题。
他们都失败了,错误是:
ActionView::Template::Error:
wrong number of arguments (given 4, expected 0..1)
# /home/rails/.rvm/gems/ruby-3.0.6@app/gems/actionpack-6.1.7.3/lib/action_dispatch/routing/url_for.rb:170:in `url_for'
唯一的补救方法是显式地将Rails.application.routes.url_helpers
添加到每个helper中,但这很难处理,因为项目很大。
(for示例root_path
变为Rails.application.routes.url_helpers.root_path
)
我四处寻找,没有找到任何有用的东西。有什么人能帮忙的吗?
1条答案
按热度按时间kpbwa7wx1#
我发现错误是由ActionDispatch::Routing::RouteSet调用路由的方式产生的。
不知道这是否有效,但它产生了一个功能性的结果,所以我在这里发布。
我创建了一个模块覆盖来挽救错误的行为: