Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Dr Alexiei Dingli Web Science Stream Introducing Rails.

Similar presentations


Presentation on theme: "1 Dr Alexiei Dingli Web Science Stream Introducing Rails."— Presentation transcript:

1 1 Dr Alexiei Dingli Web Science Stream Introducing Rails

2 2 Open source web application framework for Ruby Intended for agile programming Create by David Heinemeier Hansson Released originally in 2004 but only became popular 2007 when it was distributed with Mac OS X Leopard What is Rails?

3 3 Development Testing Production 3 Environments

4 4 Changes to source code immediately visible (just reload) Speed is not critical Provide insight to developer –Errors are easily spotted by showing the stack trace Development

5 5 Fill database using dummy data Unit and functional testing are fully automated Invoked from the command line Testing

6 6 Update to code base infrequent Production environment can be optimised Focus on performance Errors can be sent by email to the developer Production

7 7 /config/Database.yml development: adapter: sqlite3 database: db/development.sqlite3 timeout: 5000 test: adapter: sqlite3 database: db/test.sqlite3 timeout: 5000 production: adapter: mysql database: newMySqlProductionDB username: root password: superSecretPassword timeout: 5000 Setting our database

8 8 Database Server DevelopmentTable 1Table 2TestTable 1Table 2ProductionTable 1Table 2 Database architecture

9 9 Models –Handling data and business logic Controllers –Handling the user interface and application logic Views –Handling GUI and persistent objects Model-View-Controller Architecture

10 10 MVC Process

11 11 Improves scalability –Upgrade parts of the system without changing other components (Eg just the database) Makes maintenance easier –Components have low dependency on each other Promotes reuse –Model may be reused by multiple views (or vice- versa) Why MVC?

12 12 appcontrollershelpersmodelsviews MVC in Rails

13 13 Called Active Records –Connect to database –Retrieve data from tables –Store data in tables Abstracts from the database –Can connect immediately to SQLite, MySQL and PostgreSQL –RubyGems provide access to other Databases The model

14 14 Active Records abstract database specific code thus making it easy to shift between different databases Another magic of Rails is migration which saves us from creating any SQL Database Abstraction

15 15 Active Controller –Is the glue between the application data, presentation layer and the web browser –Decides how to handle a request –Retrieve data from the model to be passed –Gather information from browser request The controller

16 16 Class names should be written with each word beginning with a capital letter and no spaces between words –StoryBook –AgeCalculator Filenames are written in lowercase with undderscores separating each word –story_book –age_calculator Some conventions

17 17 Action View –Should only contain presentation logic –Can contain HTML and also Ruby code using the embded Ruby (ERb) syntax The View

18 18 The template has a one-to-one mapping to the action of a controller –Add should be in Add.html.erb The folder that stores the template should be named after the controller Views conventions

19 19 html.erb Standard HTML template which might contan ERb tags xml.builder Output XML (Eg RSS feeds) js.rjs Return JavaScript instructions Views extensions

20 20 REpresentational State Transfer –Design pattern not restricted to the WWW –Offers a resource centric approach where Client uses a resource Every resource needs to be addressed uniquely Interactions with resources are exposed as operations Most common are the CRUD operations –Create, Read, Update, Delete Lets have some REST

21 21 The protocol used is –Stateless Each request to the server is completely independent –Cacheable Proxies –Layered Routers Firewalls More REST

22 22 CRUDHTTP CREATEPOST READGET UPDATEPUT (Not implemented) DELETEDELETE (Not implemented) RESTing on the WWW

23 23 Deep relationship to provide assistance for easy construction of URLs Rails uses modified POST requests to implement the PUT and DELETE methods The REST of Rails

24 24 Rails generate the application’s structure easily Simply use the generate script Try –ruby script/generate Magical Generation

25 25 Convention over configuration –Developers only specify unconventional aspects –Eg if we have a class Sale in the model, the table will be called sales automatically –Leads to less code and less repetition –If the convention is not kept then more programming is needed Rails Philosophy (1)

26 26 Don’t Repeat Yourself (DRY) –Information located in a single unambiguous place –Eg using Active Records, no columns or tables are specified, everything is done automatically. Rails Philosophy (2)

27 27 Questions?


Download ppt "1 Dr Alexiei Dingli Web Science Stream Introducing Rails."

Similar presentations


Ads by Google