0

我有一个 Rails 应用程序需要独立搜索两个不同的集合,但两者都在单个 solr 实例中编制索引。但是,当我尝试在一个集合中搜索时,当我到达我想要显示的项目时,它会重新路由到另一个集合中的相同 ID。我应该如何调整我的 routes.rb 来解决这个问题?

这是代码:

Rails.application.routes.draw do


  get 'biofile/search'

  get 'masterfile/search'

  mount Blacklight::Engine => '/'
  Blacklight::Marc.add_routes(self)
  root to: "catalog#index"
    concern :searchable, Blacklight::Routes::Searchable.new

  resource :catalog, only: [:index], as: 'catalog', path: '/',    controller: 'catalog' do
concerns :searchable
  end

  resource :masterfile, only: [:search], as: 'masterfile', path: '/masterfile', controller: 'masterfile' do
concerns :searchable
  end

  resource :biofile, only: [:search], as: 'biofile', path: '/biofile',   controller: 'biofile' do
concerns :searchable
  end

  devise_for :users
  concern :exportable, Blacklight::Routes::Exportable.new

resources :solr_documents, only: [:show], path: '/catalog', controller: 'catalog' do
    concerns :exportable
  end

  resources :solr_documents, only: [:show], path: 'masterfile', controller: 'masterfile' do
        concerns :exportable
      end

  resources :solr_documents, only: [:show], path: 'biofile', controller: 'biofile' do
    concerns :exportable
  end

  resources :bookmarks do
    concerns :exportable


    collection do
      delete 'clear'
    end
  end


  get '/catalog/masterfile/', to: 'masterfile#search', as: 'masterfile'
  get '/catalog/biofile/', to: 'biofile#search', as: 'biofile'

  get '*path' => redirect('/')

end
4

2 回答 2

0

你在问嵌套路线吗?您希望路径看起来像 model1_model2_path?下面的示例将为您提供 group_memberships_path 以在您的视图中使用,并且 url 将具有组的 ID 和成员资格的 ID,例如 .../groups/22/membership/13/edit

rails routes在 rails 5.x 或rails 4 中使用rake routes来查看您的新路线列表,您可以看到 url 将采用 2 个可以传递给您的应用程序的 id。

  # nested routes for groups
  resources :groups do
    resources :memberships
  end
于 2018-01-30T18:15:11.223 回答