NMontano
NMontano

Reputation: 1

configuring routes for collections in rails

I have a rails application that needs to search two different collections independently, but both are indexed in a single solr instance. However, when i try to search in one collection, when i get to the item i want displayed, it reroutes to the same id within the other collection. How should i adjust my routes.rb to remedy this?

Here is the code:

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

Upvotes: 0

Views: 81

Answers (2)

faron
faron

Reputation: 1059

I think you'll need to override this method https://github.com/projectblacklight/blacklight/blob/9f676994f437f7664cfc2b5c4dffe4382a6d14d3/lib/blacklight/search_state.rb#L48 either by configuration or monkeypatch to behave differently based on some info in solr document

Upvotes: 0

random_user_0891
random_user_0891

Reputation: 2051

are you asking about nested routes? you want the path to look like model1_model2_path? the below example will give you group_memberships_path to use in your view and the url would have the id of the group and the id of the membership like .../groups/22/membership/13/edit

use rails routes in rails 5.x or rake routes in rails 4 to see the list of your new routes and you can see the urls will take 2 id's that can be passed to your application.

  # nested routes for groups
  resources :groups do
    resources :memberships
  end

Upvotes: 0

Related Questions