MinimumCrud
MinimumCrud is a Rails controller/view generator for simple model. The generated controller/view works as with Rails default scaffold controller/view, and minimize the code with DRY principle.
Installation
Add this line to your application's Gemfile:
gem 'minimum_crud'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install minimum_crud
Usage
After migrate (in this case users
),
$ bundle exec rails g minimum_crud users
create app/controllers/users_controller.rb
create app/views/layouts/minimum_crud/application/_form.html.erb
create app/views/layouts/minimum_crud/application/index.html.erb
create app/views/layouts/minimum_crud/application/show.html.erb
create app/views/layouts/minimum_crud/application/new.html.erb
create app/views/layouts/minimum_crud/application/edit.html.erb
create app/views/users/_form.html.erb
create app/views/users/_index.html.erb
create app/views/users/_show.html.erb
files | description |
---|---|
app/controllers/users_controller.rb | the controller works as with Rails default scaffold controller for users. |
app/views/layouts/minimum_crud/application/*.html.erb | sub layout files. |
app/views/users/*.html.erb | model specific view files. |
In the view files, there are some instance variable
- @model: model class
- @record: target record (
show
,new
,edit
) - @records: target record array (
index
)
option
option | description | default |
---|---|---|
-l, --sub-layout | sub layout directory name. if you don't need sub layout, set none . |
application |
-j, --enable-json | enable json format | false |
-p, --permit-params | permit params list on strong prameters | attributes of the model except id , created_at , updated_at |
example:
$ bundle exec rails g minimum_crud users --sub-layout none --enable-json true --permit-params name birthday
Contributing
- Fork it!
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
License
The gem is available as open source under the terms of the MIT License.