Rails integration for Ruby Object Mapper.
In your Gemfile:
gem 'rom'
gem 'rom-rails'
Defining schema is only required for adapters that don't support inferring schema
automatically. This means if you're using rom-sql
you don't have to define the schema.
In other cases the railtie expects the schema to be in db/rom/schema.rb
which
is loaded before relations and mappers.
The railtie automatically loads relations and mappers from app/relations
and
app/mappers
and finalizes the environment afterwards. During the booting process
rom's setup object is available via Rails.application.config.rom.setup
.
The recommended way of using relations in controllers is to specify which relations are needed for particular actions using a DSL provided by the railtie:
class UsersController < ApplicationController
relation 'users.index', only: :index
relation 'users.by_name', only: :search, requires: :name
def index
render
end
def search
render :index
end
end
By doing this actions will have access to users
which is also set as a helper
method making it available in the views.
This means no database interaction will take place in the views or helpers as ROM materializes relations when "injecting" them into controller actions.
This project is still in beta state. For examples of usage please take a look
at spec/dummy
app.
Proper documentation will be added once the interface is stable.
Please refer to issues.
- Ruby Object Mapper mailing list
See LICENSE
file.