添加自定义路由到Rails应用程序

时间:2013-10-16 02:16:03

标签: ruby-on-rails routing

我已阅读the Rails Guides

我想要设置的是以下路由到路由到“配置文件”控制器:

GET profiles/charities - 应显示所有慈善机构 GET profiles/charties/:id应该显示一个特定的慈善机构 GET profiles/donors - 应显示所有捐助者 GET profiles/donors/:id - 应该显示特定的捐赠者

我创建了配置文件控制器和两种方法:慈善机构和捐赠者。

这就是我需要的吗?

2 个答案:

答案 0 :(得分:16)

以下内容将根据您的需要设置路线,但会将其映射到:index:show的{​​{1}}和CharitiesController以及DonorsController

namespace :profiles do
  # Actions: charities#index and charities#show
  resources :charities, :only => [:index, :show]

  # Actions: donors#index and donors#show
  resources :donors, :only => [:index, :show]
end

如果设置自定义路线更合适,可以这样做:

get 'profiles/charities', :to => 'profiles#charities_index'
get 'profiles/charities/:id', :to => 'profiles#charities_show'
get 'profiles/donors', :to => 'profiles#donor_index'
get 'profiles/donors/:id', :to => 'profiles#donor_show'

以下是您正在阅读的指南中的相关部分:

  1. Resource Routing: the Rails Default - Controller Namespaces and Routing
  2. Non-Resourceful Routes - Naming Routes

答案 1 :(得分:2)

慈善机构和捐赠者似乎是嵌套资源。如果是这样,在config / routes.rb文件中你应该有类似的东西,

resources :profiles do
  resources :charities
  resources :donors
end

因为这些是嵌套资源,所以在配置文件控制器中不需要名为charities和donor的两个方法。事实上,根据您的应用程序,您可能需要为您的慈善机构和捐赠者提供单独的控制器和/或模型。