如何通过路由为 Rails 中的控制器或视图添加额外的参数

How do I add extra params via routes for controllers or views in Rails

我知道在 rails 路由中我可以做类似 get 'books/*section/:title', to: 'books#show' 的事情来让 params[:title] 在控制器或视图中可用。

但我找不到任何东西来获得可用的固定额外参数。就像,我总是会根据路线在某些参数上得到类似 params[:preview] = true 的东西。

我知道我总是可以做这样的事情:

def new
  params.merge!({preview: true})
end

但我想知道是否有其他方法

只需使用defaults

get 'books/*section/:title', to: 'books#show', defaults: {preview: true}

http://guides.rubyonrails.org/routing.html#defining-defaults