Skip to main content

jMaki on Rails For Dummies

Posted by arungupta on May 17, 2007 at 11:33 AM PDT

Craig
announced jMaki
on Rails
. Here I provide detailed steps to read data from a
MySQL database and display it in a href="http://ajax.dev.java.net">jMaki-wrapped
Yahoo
DataTable widget
.

  1. Download
    href="http://bits.netbeans.org/download/6.0/milestones/latest/">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
    .
  2. Download and install
    href="https://ajax.dev.java.net/files/documents/3115/41646/org-netbeans-modules-sun-jmaki.nbm">jMaki
    plug-in in NetBeans update center.

    1. In NetBeans 'Tools', 'Plugins',
      select 'Downloaded', click on '
      Add
      Plugins ...
      '.
    2. Select the downloaded .NBM module, click on 'Install'.
      This will install the jMaki plug-in and restart the IDE.
    3. To verify, go to 'Tools', 'Plugins',
      select 'Installed'. It should show '
      jMaki
      Ajax support
      ' with '1.6.9.7'
      version number.
  3. Create a new "Ruby on Rails Application" Project, lets say named 'jmaki_ror'.
  4. Create a new controller by right-clicking the project,
    select 'Generate ...', select 'controller',
    specify the Name as 'jmaki' and Views as 'yahoo'.
  5. jMaki-enable the Rails app
    1. Open a command prompt and go to your application
      directory. Make sure you have a href="http://subversion.tigris.org/project_packages.html#binary-packages">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.
    2. 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 :



      <head>

        <%= stylesheet_link_tag "jmaki-standard", :media
      => "all" -%>

        <%= javascript_include_tag "jmaki" -%>

        <%= jmaki_setup -%>

      </head>
    3. Within , add the following fragment:



      <%= @content_for_layout %>
    4. In 'Controllers', 'jmaki_controller.rb',
      add the following fragment before 'def yahoo'
      line:



      layout "standard"
  6. Configure the MySQL database
    1. 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.
    2. 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.
    3. 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 
    4. 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' );
  7. Add jMaki-wrapped Yahoo DataTable widget
    1. In NetBeans project, in 'Views',
      'jmaki', 'yahoo.rhtml',
      drag-and-drop 'Data Table' widget from the 'Yahoo'
      category of jMaki palette.

      1. 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

        -%>
      2. '@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
  8. 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
href="http://blogs.sun.com/arungupta/entry/database_enabled_ror_war_on">these
instructions.

Technorati: href="http://technorati.com/tag/jmaki">jmaki href="http://technorati.com/tag/rubonrails">rubyonrails
ror
netbeans
mysql
glassfish

Related Topics >>

Comments

jMaki on Rails For Dummies

I feel lucky I found this resource, I don't know if the instructions are for dummies or not but I am looking forward to implement the software on my system. I just hope I'll be able to handle the registries, I've downloaded a drivercure just in case anything goes wrong. Thanks for sharing!