Feeds

Ruby runs on Rails with NetBeans

Build a web application in minutes

HP ProLiant Gen8: Integrated lifecycle automation

NetBeans and Ruby, part 2 Having limped along in the wake of Eclipse, Sun Microsystems' NetBeans is getting its second wind. One thing that's helping is a fresh focus on scripting, particularly around Ruby on Rails.

In this piece, I shall show how well Ruby on Rails has been integrated into NetBeans using the creation of a very simple application as an example.

I'm going to build a simple link sharing application - which we'll call Linkshare - along the lines of Reddit. The functionality is straightforward: users can post interesting links to the site. Links can be displayed, updated and deleted: in others words, perform the most basic of database procedures on these posts.

For our backend database we'll use MySQL. So, before we kick off any of the Rails stuff, log on to your database server and create a database called Linkshare. And, for convenience create a user called ls. We'll leave the password blank for this tutorial.

We can use NetBeans to connect to this empty database to check that we can connect to the server and to see what state the database is in. Click on the Services tab in NetBeans, expand the Databases tree, right click on Drivers and select the MySQL node, then right click and select Connect Using on the New Connection dialog, enter the database URL and the user name, and hit OK. NetBeans will make the connection, and once it's done you can expand the tree still further to view Tables, Views and Procedures (which should be empty).

The next step is to create the Linkshare project. File New starts the new project wizard and clicking on the Ruby category gives us a number of choices, including Ruby on Rails application. Clicking Next allows us to give the project a name - Linkshare - and to pick which RDBMS we want to use. When we click on the Finish button, Rails will do its stuff and generate the entire application structure for us.

Once that's in place, we need to tell the project how to connect to the database. From the Projects tab expand the Linkshare project, navigate to the Configuration node and then double click on the database.yml file to open it in the editor. Change the development database section so that it matches your connection settings:


development:
  adapter: mysql
  database: linkshare
  username: ls
  password:
  host: <your host name or IP address>

Now, a major part of the Ruby on Rails architecture is an implementation of the Model-View-Controller (MVC) and ActiveRecord design patterns. If you're unfamiliar with the terminology don't worry, Ruby on Rails makes things simple for you. The model is a fancy way of talking about the database. And we'll add to ours by creating a table called links to store all of the links that users are going to post to our site.

Right click on the Linkshare node in Projects, select Generate and from the drop-down menu pick Model. For each link our users enter we want the URL and some description, so for the Arguments field we specify:


Link url:string description:text

When we hit OK, Rails does more application generation, including the creation of a script to set up and tear down the database table for us. The file that's generated is called 001_create_links.rb, and looks like this:

class CreateLinks < ActiveRecord::Migration
  def self.up
    create_table :links do |t|
      t.column :url, :string
      t.column :description, :text
    end
  end

  def self.down
    drop_table :links
  end
end

To run this, right click on the Linkshare node again, select Migrate Database > Current Version to connect to the database and create the links table. Once that's done, switch to the Services tab, select the Database connection and hit Refresh, click on the Tables node to see that there is indeed a links table, with fields for URL and description (as well as an ID field that was automatically added for us).

Top three mobile application threats

More from The Register

next story
Apple fanbois SCREAM as update BRICKS their Macbook Airs
Ragegasm spills over as firmware upgrade kills machines
HIDDEN packet sniffer spy tech in MILLIONS of iPhones, iPads – expert
Don't panic though – Apple's backdoor is not wide open to all, guru tells us
Mozilla fixes CRITICAL security holes in Firefox, urges v31 upgrade
Misc memory hazards 'could be exploited' - and guess what, one's a Javascript vuln
NO MORE ALL CAPS and other pleasures of Visual Studio 14
Unpicking a packed preview that breaks down ASP.NET
Captain Kirk sets phaser to SLAUGHTER after trying new Facebook app
William Shatner less-than-impressed by Zuck's celebrity-only app
Cheer up, Nokia fans. It can start making mobes again in 18 months
The real winner of the Nokia sale is *drumroll* ... Nokia
EU dons gloves, pokes Google's deals with Android mobe makers
El Reg cops a squint at investigatory letters
Chrome browser has been DRAINING PC batteries for YEARS
Google is only now fixing ancient, energy-sapping bug
prev story

Whitepapers

Designing a Defense for Mobile Applications
Learn about the various considerations for defending mobile applications - from the application architecture itself to the myriad testing technologies.
How modern custom applications can spur business growth
Learn how to create, deploy and manage custom applications without consuming or expanding the need for scarce, expensive IT resources.
Reducing security risks from open source software
Follow a few strategies and your organization can gain the full benefits of open source and the cloud without compromising the security of your applications.
Boost IT visibility and business value
How building a great service catalog relieves pressure points and demonstrates the value of IT service management.
Consolidation: the foundation for IT and business transformation
In this whitepaper learn how effective consolidation of IT and business resources can enable multiple, meaningful business benefits.