ActiveCopy
ActiveCopy is a Rails model layer for reading from static page files. Inspired by Jekyll, it hacks ActionView to allow for storage of static page content inside app/views as YAML Front Matter/Markdown.
Although it's still very much a work in progress, ActiveCopy is being used in production on http://psychedeli.ca.
Setup
Add to Gemfile:
gem 'active_copy'
And generate a model:
$ rails generate copy article
You'll get this as app/models/article.rb:
class Article < ActiveCopy::Base
attr_accessible :title
end
You'll also see a generator pop up in lib/generators that
corresponds to the name you gave the original generator. The copy
generator actually "generates a generator" so that you can more easily
generate your custom model records (files).
Usage
You can define articles in app/views/articles/content/your-article.md:
---
title: "The title of your article"
---
Hi I'm a static article.
Retrieve that article from a param in your route:
class ArticlesController < ApplicationController
def show
@article = Article.find params[:id]
respond_with @article
end
end
And show the article in your view:
#article
%h1= @article.name
.content= @article.content
Contributing
You can contribute by making a GitHub pull request. Please include tests with your feature/bug fix and an ample description as to why you're fixing the bug.
Roadmap
- Generators