 |
jMaki on Rails For Dummies
Posted by arungupta on May 17, 2007 at 11:33 AM | Comments (0)
Craig
announced jMaki
on Rails. Here I provide detailed steps to read data from a
MySQL database and display it in a jMaki-wrapped
Yahoo
DataTable widget.
- Download
NetBeans
6.0 M9 (Full version) and configured to install only "Base
IDE", "Java IDE", "Web and Java EE" and "Ruby" modules. A cutting-edge
build can be obtained from the
hudson
build.
- Download and install
jMaki
plug-in in NetBeans update center.
- In NetBeans '
Tools', 'Plugins',
select 'Downloaded', click on 'Add
Plugins ...'.
- Select the downloaded .NBM module, click on 'Install'.
This will install the jMaki plug-in and restart the IDE.
- To verify, go to '
Tools', 'Plugins',
select 'Installed'. It should show 'jMaki
Ajax support' with '1.6.9.7'
version number.
- Create a new "Ruby on Rails Application" Project, lets say named '
jmaki_ror'.
- Create a new controller by right-clicking the project,
select '
Generate ...', select 'controller',
specify the Name as 'jmaki' and Views as 'yahoo'.
- jMaki-enable the Rails app
- Open a command prompt and go to your application
directory. Make sure you have a SVN
client configured on your machine.
Then invoke the following commands:
script/plugin source
http://jmaki-goodies.googlecode.com/svn/trunk/rails_plugins
script/plugin install jmaki_core
script/plugin install jmaki_yahoo
The first step adds the plug-in registry to the list of
registries used for searching plug-ins. The second two steps install the
core and yahoo plug-ins.
- Expand '
Views', right-click on
'layouts', select 'New',
select 'Empty RHTML (Embedded Ruby) file ...'.
Enter the 'File Name' as 'standard'.
This will add 'standard.rhtml' in layouts
sub-tree. Enter the following fragment before <body>:
<head>
<%= stylesheet_link_tag "jmaki-standard", :media
=> "all" -%>
<%= javascript_include_tag "jmaki" -%>
<%= jmaki_setup -%>
</head>
- Within <body>, add the following fragment:
<%= @content_for_layout %>
- In '
Controllers', 'jmaki_controller.rb',
add the following fragment before 'def yahoo'
line:
layout "standard"
- Configure the MySQL database
- Create database using the command: '
mysqladmin -u root create
jmaki_ror_development'. You need to make sure that the database
name in this script is changed to match the project name.
- Right select the NetBeans project, select '
Generate',
select 'model', specify the arguments as 'grid',
click 'OK'. This will
generate, in NetBeans project, Database Migrations, migrate,
001_create_grids.rb.
- Open
001_create_grids.rb,
change self.up
helper
method such that it looks like:
def self.up
create_table :grids do |t|
t.column :company, :string
t.column :price, :float
t.column :change, :float
t.column :percent_change, :float
t.column :last_updated, :string
end
end
- Right-select NetBeans project, select '
Run
Rake
Target', 'db', 'migrate'.
This generates the database
table. Execute the
following query to insert data into the table:
insert into grids values (1, 'A Co', 71.72,
0.02, 0.03, 'Jan 1, 2007, 10:00am' );
insert into grids values (2, 'B Inc', 29.01, 0.42, 1.47, 'Feb 1, 2007,
10:00am' );
insert into grids values (3, 'C Group Inc', 83.81, 0.28, 0.34, 'Mar 1,
2007, 10:00am' );
insert into grids values (4, 'D Company', 52.55, 0.01, 0.02, 'Apr 1,
2007, 10:00am' );
- Add jMaki-wrapped Yahoo DataTable widget
- In NetBeans project, in '
Views',
'jmaki', 'yahoo.rhtml',
drag-and-drop 'Data Table' widget from the 'Yahoo'
category of jMaki palette.
- Until the jMaki data model for grid and data
widgets is consistent between Java and JRuby, you need to replace the
generated code in '
yahoo.rhtml' with the
following:
<%= jmaki_widget 'yahoo.dataTable',
:args => {
:columns => [
{ :title => 'Company', :width => 200, :locked =>
false },
{ :title => 'Price', :width => 75, :renderer =>
'usMoney' },
{ :title => 'Change', :width => 75, :renderer =>
'change' },
{ :title => '% Change', :width => 75, :renderer =>
'pctChange' },
{ :title => 'Last Updated', :width => 85, :renderer
=> 'italic' }
]
},
:value => @table_data
-%>
- '
@table_data' is defined
in 'jmaki_controller' in 'def yahoo'
as:
def yahoo
@table_data = []
Grid.find_all().each do |data|
@table_data
<< [ data.company, data.price, data.change,
data.percent_change, data.last_updated]
end
end
- That's it, run your app and view the page at '
http://localhost:3000/jmaki/yahoo'.
Now jMaki-wrapped Yahoo DataTable widget is picking data from the MySQL
database.
And as a next step, you can WAR'up this RoR application and
deploy it on
GlassFish V2
using
these
instructions.
Technorati: jmaki rubyonrails
ror
netbeans
mysql
glassfish
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
|