Rails Portfolio
Easily build a minimalistic portfolio site by dropping this gem into your rails project.
See an example site at: http://edd.bz.
Dependencies
This gem depends on paperclip, so make sure you meet all its requirements (e.g. ImageMagick).
If you go with our default authorization system we'll also depend on devise.
Installation
1) Add it to your Gemfile
gem 'rails-portfolio'
And run bundle install
.
2) Install
Run the following command:
rails generate portfolio:install
This will create:
- config/initializers/portfolio.rb
And insert the following code to your app:
# config/routes.rb
mount Portfolio::Engine, at: '/portfolio'
// app/assets/javascripts/application.js
//= require portfolio/application
/* app/assets/stylesheets/application.css
*= require portfolio/application
*/
Make sure you have a root path defined. If you'd like to point the root path at your portfolio, uncomment the line:
root 'portfolio/sites#default'
3) Define your authorization method
If you don't have an authorization method already in place, you don't have to do anything and we'll setup an admin_user table and login interface for you (through devise), if you'd like to use your own auth method you'll have to uncomment the following lines in config/initializers/portfolio.rb
:
config.auth_method = :custom
config.auth_action = :my_auth_action!
my_auth_action!
is the method that'll be called before enabling the user to access the portfolio admin panel, so make sure it exists and only returns true
when properly authorized.
4) Migrations
- Run:
rake portfolio:install:migrations
to copy the portfolio migrations into your project. - Run
rake db:migrate
to execute them.
6) Create an admin user
If you are using our authorization method you'll need to create an admin user in order to access your new admin panel, do so by running:
rake portfolio:create_admin_user[your@admin_email.com,your_secure_password]
Usage
Once installed you can start setting up your portfolio by going to /portfolio/admin
(if mounted under /portfolio
).
Create a portfolio item and set it as default, then you'll be able to access it from /portfolio
or wherever you decide to mount the engine.