1 / 21

Rails and Grails

Rails and Grails. To get started. Make sure you have java installed You can get the sdk and jre at: http:// www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html Install the jdk and not just the jre. Ruby on Rails. Context

svea
Download Presentation

Rails and Grails

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rails and Grails

  2. To get started • Make sure you have java installed • You can get the sdk and jre at: http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html • Install the jdk and not just the jre

  3. Ruby on Rails • Context • Website development is highly repetitive • The client side has been addressed with a number of tools that support drag and drop, adjustable technology, often xml-based • But the rest of the process remained fairly tedius • Goal of various web development frameworks • Provide a top down approach to building db-centric web apps • Remove a lot of configuration detail work • Generate the core of the back end code using MVC • Hide the db from the developer and provide a more uniform approach, language-wise, for building a web app • Tradeoff – programmer loses a lot of control over the architecture of the web app

  4. Install Rails • Go to http://www.ruby-lang.org/en/downloads/ • Choose your platform and • install the ruby language • install “ruby gems” • windows, use the installer at http://rubyinstaller.org/ • Install RubyMine: http://www.jetbrains.com/ruby/quickstart/ • Go to Settings on RubyMine • Tell it where your ruby installation is • Install the gem called “bundler” • It helps install other gems • Run update on all your gems

  5. Create a project • Use File to create a new “rails application” in RubyMine • Set it up for mysql – RubyMine will do this for you • Call it first_project- You should get this:

  6. Your project folder • App folder • Has your controllers, models, and views in it • Remember to save it frequently • Config folder • Has database.yml file – note that the default is sqlite • This is why you had RubyMine use mysql • Notice that there are 3 databases in an official RonR app • Development, test, production • Use development, you don’t need to build the other dbs

  7. Your database • Turn on your mysql and apache • Create a database called first_project_development • No need to create any tables… • You may need to put this in your ruby/bin folder: • You can get it here – • http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick

  8. Run your app You should get this:

  9. Click on the blue words and get:

  10. MVC RonR subdirectories • The controllers subdirectory. A controller handles a web request from the user. • The views subdirectory holds the display templates to fill in with data and return data to the user's browser. • The models subdirectory holds the classes that define the data being manipulated • The helpers subdirectory holds helper classes used to assist the model, view, and controller classes. The idea is to keep the m, v, and c classes minimal.

  11. Rails tutorial: Assignment 9Due on Dec 11. • See: http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=3.2 for a very detailed tutorial • And see: https://github.com/perfectionist/sample_project/wiki/Using-RubyMine-IDE-for-Ruby-on-Rails-Tutorial for instructions on how to use RubyMine for the tutorial • Tutorial assignment: build the demo app described in chapter 2 of the tutorial document: http://ruby.railstutorial.org/chapters/a-demo-app?version=3.2#top • Hand in a zipped up project folder. I don’t need the database. Include a screen snapshot of your project folder in RubyMine. • Important: this material will be on the final. • Note: if you have problems with any details of the tutorial you can skip them – the important thing is to learn the concepts and to do most of the tutorial.

  12. Some things to think about as you do the RonR tutorial… • What is Active Record? • An abstraction layer that sits on top of relational databases • Provides an easy way to move between relational platforms • Relies on a single .yml file • The idea is that you do not write SQL, at least not directly • You can retrieve objects: http://guides.rubyonrails.org/active_record_querying.html • You can add, change, delete tables using “migrations” http://guides.rubyonrails.org/migrations.html NOTE: The link to the guides as a whole is: http://guides.rubyonrails.org/ … What do you think of the Active Record paradigm?

  13. Active records • This is a form of object to relational mapping • Active record connects ruby classes to db tables • It is installed with “gem install activerecord”, or via RubyMine • See: http://api.rubyonrails.org/files/activerecord/README_rdoc.html • The classes are the “models” that map to tables • “Views” are html pages with embedded ruby • “Controllers” are ruby scripts • Restrictions (conventions) • Class names are singular • Table names are plural • Tables contain and identity column named id • If you use underscores _ in your table name, you leave them out on the class name • Active record supports CRUD • Create, read, update, delete primitives

  14. More Ruby on Rails questions • What are “migrations”? • They are a structured and database product • Database independent (e.g., MySQL versus Oracle) way of creating and maintaining a database while you build a site • Look at: http://guides.rubyonrails.org/migrations.html • What is Rake? • It is a build tool inspired by Make • What is “scaffolding”? • This is what gives you the framework of an entire website in a snap, making it easy to orient yourself and show something to a customer early on in the website development process • You can create basic templates for views, controllers, and models … What do you think of migrations and scaffolding?

  15. Active records primitives • create_table • change_table • drop_table • add_column • change_column • rename_column • remove_column • add_index • remove_index

  16. Important construct: generators • These are rails commands that can be used to create pieces of a website • Generators often initiate other operations • Example $ rails generate scaffold User name:string results in the following generated code:  invoke  active_record db/migrate/20091120125558_create_users.rb       create    app/models/user.rb      invoke    test_unit   create      test/unit/user_test.rb     create      test/fixtures/users.yml route  resources :users

  17. Example continued invokescaffold_controller       create    app/controllers/users_controller.rb       invoke    erb       create      app/views/users       create      app/views/users/index.html.erb       create      app/views/users/edit.html.erb       create      app/views/users/show.html.erb       create      app/views/users/new.html.erb create      app/views/users/_form.html.erb       invoke    test_unit       create      test/functional/users_controller_test.rb       invoke    helper       create      app/helpers/users_helper.rb       invoke      test_unit       create        test/unit/helpers/users_helper_test.rb       invoke  stylesheets       create    app/assets/stylesheets/scaffold.css

  18. Ruby on rails app servers • Native ruby webserver: Webrick and needs no configuration, and it is really only a web server (HTTP) • Lighttpd is a web server that focuses on speed and low memory usage • You can use Apache • There is growing use of Phusion: https://www.phusionpassenger.com/

  19. Installing groovy and grails • Go to http://groovy.codehaus.org/ and install groovy • Make sure to let your OS create a system variable so groovy can be found • Go to http://grails.org/download and download grails, then open it up in one of your user folders (e.g., documents) • Open up Intellij • Turn on the grails plugin in the plugins settings in File/Settings • Create a grails project; you will be asked to point Intellij to your grails folder • You will be asked if you are developing an app or a plugin; choose app • By default, Grails uses an in memory database called HSQLDB. • Hibernate is a widely used object/relational mapping layer that is similar in purpose to Active Record

  20. Grails tutorial: Assignment 10Due on Dec. 11 • You will discover a system of folders has been created, and it looks very much like ruby on rails • The datasource.groovy file is where you set up mysql or other database • The tutorial to follow is at: http://wiki.jetbrains.net/intellij/Creating_a_simple_Grails_application_with_IntelliJ_IDEA • This is much simpler than the RonR tutorial. • Submit: your final grails project, zipped up. I do not need the database. Include a screen snapshot of your Grails project in Intellij. • Important: this material will be on the final. • …something to think about: how is Grails different from Ruby on Rails?

  21. Extra credit on Grails projecct • Get your grails project working with mysql and show it to me! • Hint: • You need to change the DataSource.groovy code • And --- you need to change BuildConfig.groovy code

More Related