相关疑难解决方法(0)

在路由资源中为Rails更改:id参数的名称

我环顾四周如何改变动态params插槽,并发现这篇文章确实完成了.该帖子是http://robots.thoughtbot.com/post/159809070/rails-patch-change-the-name-of-the-id-parameter-in

基本上它的作用是,如果以下是路线:

map.resources :clients, :key => :client_name do |client|
  client.resources :sites, :key => :name do |site|
    site.resources :articles, :key => :title
  end
end
Run Code Online (Sandbox Code Playgroud)

这些路由创建以下路径:

/clients/:client_name
/clients/:client_name/sites/:name
/clients/:client_name/sites/:site_name/articles/:title
Run Code Online (Sandbox Code Playgroud)

一种解决方案是覆盖def to_param模型中的方法,但我希望这不触及模型本身.

但是自从它为Rails 2.x以来,我怎样才能为Rails 3实现相同的功能呢?

更新

这个程序是使用Mongoid.不是AR.所以,友好的宝石不能用于afaik.

ruby ruby-on-rails ruby-on-rails-3

101
推荐指数
3
解决办法
6万
查看次数

覆盖嵌套的命名路由参数

来自 Rails docs,可以简单地这样做:

resources :videos, param: :identifier
Run Code Online (Sandbox Code Playgroud)

但是,如果我有嵌套资源怎么办?以下是路线:

resources :videos
  resources :images
end
Run Code Online (Sandbox Code Playgroud)

以上生成路由,如:

video_images GET  /videos/:video_id/images(.:format)                  images#index
Run Code Online (Sandbox Code Playgroud)

如何:video_id从路线覆盖?param在这种情况下,我似乎无法使用。

routes ruby-on-rails

2
推荐指数
1
解决办法
1447
查看次数

标签 统计

ruby-on-rails ×2

routes ×1

ruby ×1

ruby-on-rails-3 ×1