If you were one of the unfortunate souls who missed RailsConf this year, I’m sorry for you. If you happened to be at RailsConf but missed Justin Gehtland’s excellent Streamlined tutorial then you are truly of all people most pitiable.
On a more serious note, the tutorial was very good and has sparked a lot of interesting ideas for further enhancing Streamlined beyond its already hefty feature set. For those who don’t know, Streamlined is a Rails plugin that brings the declarative goodness of ActiveRecord to the UI. It enhances your views with full-featured scaffolds that include relationship management, quick adding of associated models, and much more.
If you haven’t played with Streamlined before, why not give it a try? With several fresh screencasts over at the blog, a bundle of new documentation, a new sample project, and version 1.0 on the horizon… there’s no time like the present.
Getting started with Streamlined is easy…
First, let’s create a new Rails application and install the plugin:
$ rails address_book $ cd address_book $ script/plugin install http://svn.streamlinedframework.org/edge/streamlined/
Second, generate a controller and a model:
$ script/generate controller People $ script/generate model Person
Third, make the controller Streamlined-enabled by adding this code to it:
class PeopleController < ApplicationController layout "streamlined" acts_as_streamlined end
Streamlined will assume that our controller name matches the name of the model the controller manipulates. The above example automatically uses the Person
model we created.
Now let's setup the fields for our Person
model. Open the migration at db/migrate/001_create_people.rb
and edit it to look like this:
class CreatePeople < ActiveRecord::Migration def self.up create_table :people do |t| t.column :first_name, :string t.column :last_name, :string t.column :email, :string end end def self.down drop_table :people end end
Finally, let's start our server and open the application:
$ script/server $ open http://localhost:3000/people
Note: If you're on Windows, the open
command won't work. You'll need to open Internet Explorer or Firefox and navigate to localhost:3000/people manually.
You should see Streamlined's interface in your browser, along with an empty list of people. Click the plus icon to add a new person. Try clicking on a column to sort the list. You can also edit and view existing people in the list and filter the list using the text box on the top right of the page.
In my next post, we'll create a UI class to go along with our model. We'll begin adding declarations to the UI class to change the way Streamlined renders our data.
Thanks for posting this. It helped me get rolling with Streamlined.
Couple of things:
1) Don’t forget to:
a) update database.yml w/ appropriate ‘username’ and ‘password’ values;
b) create (at least) the ‘address_book_development’ database from a MySQL client;
c) run “rake db:migrate” from the command line
before starting up the server & browsing to the application.
2) I couldn’t get this to work on my Wintel box [Ruby 1.8.5, rails 1.2.3, …], even after deleting the source_cache file and:
>gems update –system
>gems update
For some reason, the plugin wouldn’t install properly …
However, Ubuntu (Dapper Drake), Ruby 1.8.4, rails 1.2.3, etc., all went smoothly.
Pingback: puts Blog.new(”nonsense”) » Blog Archive » Streamlining Your Way to Rails
Is it layout “streamlined”
this is what u have
or
layout ‘streamlined’
this is what the streamlined screencast has
tried both
even tried gems update
the error message I get on a windows machine is Template is missing
MercedesAMG, make sure you’ve run the installer task that copies layouts, JavaScript, etc. to the correct directories:
rake streamlined:install_files
This task is supposed to get triggered on install, but sometimes it doesn’t. When it doesn’t, it has to be run manually.
I had the same issue as MercedesAMG (trying to get streamlined up and running on a pc).
rake streamlined:install_files
got me through the missing layout issue. Now it seems that there are no default index.rhtml files or that my app can’t locate the default index.rhtml from streamlined.
Dropping a dummy index in gets around the error but eliminates all of the basic streamlined stuff (like the basic CRUD functions)
Any ideas?
I’d be very interested to know how/why you chose Streamlined over ActiveScaffold. Any comments?