Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rails and Grails. To get started Make sure you have java installed You can get the sdk and jre at:

Similar presentations


Presentation on theme: "Rails and Grails. To get started Make sure you have java installed You can get the sdk and jre at:"— 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 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/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/http://rubyinstaller.org/ Install RubyMine: http://www.jetbrains.com/ruby/quickstart/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 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 9 Due on Dec 11. See: http://ruby.railstutorial.org/ruby-on-rails-tutorial- book?version=3.2 for a very detailed tutorialhttp://ruby.railstutorial.org/ruby-on-rails-tutorial- book?version=3.2 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 https://github.com/perfectionist/sample_project/wiki/Using- RubyMine-IDE-for-Ruby-on-Rails-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#tophttp://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 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/ 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 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.htmlhttp://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 invoke scaffold_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/ https://www.phusionpassenger.com/

19 Installing groovy and grails Go to http://groovy.codehaus.org/ and install groovyhttp://groovy.codehaus.org/ 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)http://grails.org/download 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 10 Due 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_app lication_with_IntelliJ_IDEA http://wiki.jetbrains.net/intellij/Creating_a_simple_Grails_app lication_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


Download ppt "Rails and Grails. To get started Make sure you have java installed You can get the sdk and jre at:"

Similar presentations


Ads by Google