截图是很难想让人家帮你破案的,直接把你的 demo 上传到 github 地址发出来看一看 大概就知道什么问题了
实际上大家都被表面上的错误信息误导了,的确是 ArgumentError, 但并不是截图中给出的那行触发的,而是 gem 内部的代码触发的 (我也不知为何 rails 没有打印完整的错误栈).
15 楼截图中显示是 will_paginate 这里报错,实际触发这个错误的是will_paginate 这个 gem 中的 will_paginate_translate 方法,translate 这一行抛出的错误
translate 的方法签名是translate(key, **options)
, 而 will_paginate_translate 在调用 translate 时,传入了一个 symbol 和 hash
translate(key, options.merge(:default => defaults, :scope => :will_paginate))
在 ruby2 中,这并没有错,然而楼主用的是 ruby3. 需要写成这样才能正确
translate(key, **options.merge(:default => defaults, :scope => :will_paginate))
楼主最开始描述的问题应该也是这个原因造成的,建议直接将 ruby 换成 2.7 解决。