首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails路由映射

Rails路由映射
EN

Stack Overflow用户
提问于 2012-04-10 13:04:08
回答 2查看 70关注 0票数 0

我是rails新手,我有一个映射到resources的名为resource_links的控制器

代码语言:javascript
复制
resources :resources, :as => :resource_links, :controller => :resource_links

这是可行的( /resources基本上就像/resource_links一样工作)。但是,尝试转到/resources/tags不起作用。为了解决这个问题,我添加了更多映射,如下所示:

代码语言:javascript
复制
  match 'resource_links/tag/:tag(.:format)' => 'resource_links#tag', :via => :get, :as => 'resource_links_tagged', :constraints => {:tag => /.*/}
  match 'resource_links/tags' => 'resource_links#tags', :via => :get, :as => 'resource_links_tags'

有什么方法可以将/resources/tags映射到/resource_links/tag

EN

回答 2

Stack Overflow用户

发布于 2012-04-10 13:19:26

只需尝试:

代码语言:javascript
复制
  match 'resource/tag/:tag(.:format)' => 'resource_links#tag', :via => :get, :as => 'resource_links_tagged'
  match 'resource/tags' => 'resource_links#tags', :via => :get, :as => 'resource_links_tags'

或者使用LIKE (更具可读性):

代码语言:javascript
复制
  match 'resource/tag/:tag(.:format)', :controller => 'resource_links', :action => 'tag', :via => :get, :as => 'resource_links_tagged'
  match 'resource/tags', :controller => 'resource_links', :action => 'tags', :via => :get, :as => 'resource_links_tags'
票数 0
EN

Stack Overflow用户

发布于 2012-04-10 13:24:52

可以,您可以通过这种方式扩展默认restful路由

代码语言:javascript
复制
resources :resources, :as => :resource_links, :controller => :resource_links do
  collection do
    get :tags
    get 'tag/:tag', :action => :tag, :as => :tagged
  end
end

接下来,查看rake routes的输出以检查路由助手是如何命名的。

代码语言:javascript
复制
  tags_resource_links GET    /resources/tags(.:format)     resource_links#tags
tagged_resource_links GET    /resources/tag/:tag(.:format) resource_links#tag
       resource_links GET    /resources(.:format)          resource_links#index
                      POST   /resources(.:format)          resource_links#create
    new_resource_link GET    /resources/new(.:format)      resource_links#new
   edit_resource_link GET    /resources/:id/edit(.:format) resource_links#edit
        resource_link GET    /resources/:id(.:format)      resource_links#show
                      PUT    /resources/:id(.:format)      resource_links#update
                      DELETE /resources/:id(.:format)      resource_links#destroy
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10083325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档