Rails 3路由有或没有:id

时间:2011-05-15 04:22:49

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

有没有办法让路线允许:idnil

例如:

match 'product_specs/:id' => 'home#product_specs', 
      :as => :product_specs, 
      :via => :get

id作为参数。但是我也希望传递一个像product_specs_path()这样的空参数,以便我也可以选择加载我的所有记录。

是否有可以达到此目的的路线匹配?

1 个答案:

答案 0 :(得分:8)

也许如果您使用可选参数

# Routes
match 'product_specs/(:id)' => 'home#product_specs'

# Controller
def product_specs
  if params[:id].nil?
    product_specs = ProductSpecs.all()
  else
    product_specs = ProductSpecs.find(params[:id])
  end

这样的事情会起作用吗?