我想在链接到各种对象时添加一个参数。
我知道我可以将ActiveModel实例传递给url_for来生成适当的URL:
url_for(@my_object) # => /my_objects/1
但是当我尝试将参数添加到生成的URL时,没有骰子。
url_for(@my_object, foo: 'bar') # => ArgumentError: wrong number of arguments (given 2, expected 0..1)
现在我使用url_for(@my_object) + '?foo=bar'
,但它又丑陋又脆弱,我很想找到一个更清洁/更安静的解决方案。
答案 0 :(得分:2)
哈哈!在搜索文档以链接到相关API时,我发现url_for
在后台使用了 polymorphic_path ,它可以满足我的需要,并接受其他参数作为最后一个参数
我现在可以替换
url_for(@my_object) + '?foo=bar' # Don't do this
具有更强大的表达方式
polymorphic_path(@my_object, foo: 'bar') # This is much better
polymorphic_url(@my_object, foo: 'bar') # Or this for a full URL