-
Notifications
You must be signed in to change notification settings - Fork 9
Developer Notes
Seth Johnson edited this page May 9, 2016
·
18 revisions
Follow the instructions on the Developer VM Setup page.
# 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('[email protected]')
monograph.save!
chapter1 = Section.new(title: ['Chapter 1'], visibility: vis)
chapter1.apply_depositor_metadata('[email protected]')
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
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
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!
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