Rails在定义路径时如何合并参数

时间:2012-03-12 13:45:15

标签: ruby-on-rails ruby ruby-on-rails-3

我正在使用简单的导航,我正在尝试定义路径:

sub_nav.item t.id,
             t.h1.force_encoding("UTF-8"),
             tag_path( d.slug, t.slug,
               params.merge(:tag_id => t.id, :page => nil)
             )

我想合并params,但是我得到了错误:

No route matches {:controller=>"kategoris", :action=>"show", :view=>"boks",
  :id=>"vind-gavekort", :tag_id=>26, :page=>nil,
  :kategori=>"gavekort-konkurrencer"}

如果我将其更改为:

sub_nav.item t.id,
             t.h1.force_encoding("UTF-8"),
             tag_path( d.slug, t.slug, :tag_id => t.id, :page => nil )

它有效,但参数不合并。

路线:

match '/:id' => 'kategoris#show', :as => 'katshow'
match ':kategori/:id' => 'tags#show', :as => 'tag'

1 个答案:

答案 0 :(得分:2)

检查:控制器:操作值在合并其他自定义参数时没有乱七八糟。
试试这个:

params.except(:controller, :action).merge(:tag_id => t.id, :page => nil)