Ruby on Rails envy part 2 – The first webapplication

Fire up Putty and log on to our newish ROR virtual appliance!

Oh wait. First I have to think of something we are going to create. So how about a Marketplace app, where supply and demand meets? And since we’re so into a free society, let’s make it an app where no money is allowed. So we’re going to exchange goods and services. What do we need?

  • List all open requests
  • Create a new request
  • Read and display a request
  • Update the request
  • Delete the request

That will be enough for now. So, what are the features of the request?

  • name – name of the requester (string)
  • contents – the textbody of the request (text)
  • title – the title of the request (string)

Now start up Putty and log on to the BitNami server.

[bash]
cd /opt/bitnami/projects
rails fleemarket
[/bash]

This is something like File -> New Project -> ASP.NET MVC 2 application in Visual Studio. With this command, you’ll create the complete web application in a folder ‘fleemarket’. If I cd into this new folder I get to see:
[bash]
root@linux:/opt/bitnami/projects/fleemarket# ls
app db lib public README test vendor
config doc log Rakefile script tmp
[/bash]

Right, now let’s run it. After all, in VS I can also start debugging right after the creation of my project:

[bash]
ruby script/server
[/bash]

Anyhow, we’ll get the following output as the server is starting. So we need to open up another instance of Putty for editing.

[bash]
root@linux:/opt/bitnami/projects/fleemarket# ruby script/server
=> Booting Mongrel
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[/bash]

So, let’s create the Request class first.

[bash]
root@linux:/opt/bitnami/projects/fleemarket# ruby script/generate scaffold request requester:string title:string contents:string
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/requests
exists app/views/layouts/
exists test/functional/
exists test/unit/
create test/unit/helpers/
# etc
[/bash]

So, Rails created a controller and a view apparently. And now for the database.

[bash]
root@linux:/opt/bitnami/projects/fleemarket# rake db:migrate
(in /opt/bitnami/projects/fleemarket)
== CreateRequests: migrating =================================================
— create_table(:requests)
-> 0.0040s
== CreateRequests: migrated (0.0042s) ========================================
[/bash]

I am done. And then check out what I’ve just created. A complete CRUD thing with a database.

Next time, let’s check out what just happened under da hood.

One Reply to “Ruby on Rails envy part 2 – The first webapplication”

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: