多态url_for的URL参数

时间:2012-07-17 00:25:07

标签: ruby-on-rails ruby

我目前有这段代码:

link_to 'add a new baz!', new_foo_bar_baz_path(@foo, @bar, baz: { thing: 'the-value' })

生成此网址:

http://ganxy.local/foos/1/bars/2/bazes/new?baz%5Bthing%5D=the-value

由于我对我的应用程序进行了一些更改,我想让url生成多态。所以,像这样:

link_to 'add a new baz!', [@foo, @bar, :baz]# : { thing: 'the-value' })

有没有办法将?baz%5Bthing%5D=the-value添加到最后,还是需要手动生成字符串?

3 个答案:

答案 0 :(得分:2)

我不建议使用多态url,因为它比helper方法慢2倍。查看my post about this

答案 1 :(得分:1)

请参阅Rails 3 - Nested resources and polymorphic paths: OK to two levels, but break at three

所以你可以写

link_to 'add a new baz!', polymorphic_url([@foo, @bar, :baz], thing: 'the-value')

答案 2 :(得分:1)

你可以这样做:

link_to 'add a new baz!', [[@foo, @bar, :baz], thing: 'the-value']