Contentable
A contentable is an application document that includes the Workarea::Contentable
module, and thereby has a 1:1 relationship with a content.
Creating a contentable does not create its associated content, so a contentable is not guaranteed to have content. Pass a contentable to Content.for
to find_or_create
its associated content. The following examples use a content page as the contentable.
# Create a content page
page = Workarea::Content::Page.create!(name: 'Shopping Guide')
# No content yet
page.content
# => nil
# Create content for the page
content = Workarea::Content.for(page)
content.id.to_s
# => "58ac8489eefbfe3e5ac2ae58"
# Access the content from the page
page.reload
page.content.id.to_s
# => "58ac8489eefbfe3e5ac2ae58"
# Access the page from the content
content.contentable_type
# => "Workarea::Content::Page"
content.contentable_id.to_s
# => "58ac8489eefbfe3e5ac2ae56"
content.contentable.name
# => "Shopping Guide"
Help Us Improve this Doc
Was this helpful? Open a GitHub issue to report a problem with this doc, suggest an improvement, or otherwise provide feedback. Thanks!