在ActiveModel实例中使用url_for时如何添加参数?

时间:2018-08-08 10:04:03

标签: ruby-on-rails activemodel url-for

我想在链接到各种对象时添加一个参数。

我知道我可以将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',但它又丑陋又脆弱,我很想找到一个更清洁/更安静的解决方案。

1 个答案:

答案 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