Skip to content

Developer Notes

Seth Johnson edited this page May 9, 2016 · 18 revisions

Using the Hydra Camp Vagrant VM as your development environment

Follow the instructions on the Developer VM Setup page.

How to create a monograph with attached sections using the rails console

# Decide what visibility you want the monograph to have
vis = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC

# Decide which press the monograph will belong to
press = Press.where(subdomain: 'michigan').first

# A monograph is required to have a title and a press.
# Because the monograph is stored in fedora, but the press is stored
# in the relational database, we use the press subdomain as the key
# instead of the id.
monograph = Monograph.new(title: ['Monograph #1'], press: press.subdomain, visibility: vis)

# The person who created the monograph must have edit access to the monograph
monograph.apply_depositor_metadata('admin@example.com')

monograph.save!

chapter1 = Section.new(title: ['Chapter 1'], visibility: vis)
chapter1.apply_depositor_metadata('admin@example.com')
chapter1.save!

# Add the section to the monograph
monograph.ordered_members << chapter1
monograph.save!

# To see the sections that you added:
monograph.ordered_members.to_a

How to re-index Solr using the rails console

If you re-start solr, you'll need to reindex all your fedora objects. Otherwise, none of your monographs or files will be visible in the UI.

Note: In order to get all the objects correctly indexed, including all their associations, you need to reindex twice.

ActiveFedora::Base.reindex_everything

Then again

ActiveFedora::Base.reindex_everything

How to delete all records out of fedora and solr

Not recommended for production environments, but useful for dev or test environments, when you want to start with a clean slate. This will delete everything in fedora and solr.

In the rails console:

require 'active_fedora/cleaner'
ActiveFedora::Cleaner.clean!

How to search for fedora records in the rails console

Use the where method with the solr key that you want to query.

# Find the first 2 Monograph records that belong to a certain press:
Monograph.where(press_sim: 'umich').limit(2)

# Wildcard search for records that begin with 'subt'
# (such as 'Subtitle' or 'Subtle'):
Monograph.where('title_tesim:subt*')

# If you want to see the titles:
Monograph.where('title_tesim:subt*').map(&:title)

# Note that this similar query won't work.  You'll get 0 results, even if
# there are titles that match your wildcard.  The way we have solr configured,
# if you want to do stemmed or wildcard queries, you need to use the *_tesim
# keys for the query.
Monograph.where('title_sim:subt*')  # This won't work