我正在使用 Rails 4.2。在 gem 中,有一条路线定义为
get 'book/:id', to: 'book#show', as: book
我想在自定义路由中添加一个额外的动态段,所以在我的应用程序的 routes.rb 文件中,我有
get ':language/book/:id', to: 'book#show', as: language_book
然后在我的控制器中,我尝试调用 url helper
language_book_url language: :en, id: 3
我希望得到一个 url http://host:port/en/book/3
,但是,相反,我得到http://host:port/book/3?language=en
. 看来我不能将助手与那个额外的自定义动态段一起使用。是否可以使用新的动态段变量获得所需的路径?谢谢!
usmanali 在评论中给出了答案,使用language_book_url :en, 3
. 但是如果我想要动态段和查询字符串参数的混合呢?所以我的目标网址是http://host:port/en/book/3?barcode=1234
. 如何调用 url 助手?对 helper 的调用language_book_url('en', 3, barcode: 1234)
会产生http://host:port/book/3?language=en&barcode=1234
,而不是预期的。