CSC/ECE 517 Fall 2013/ch1 1w27 ma: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 18: Line 18:
== MVC Rails ==
== MVC Rails ==
=== Directory Structure ===
=== Directory Structure ===
<table width="609">
<tr>
<th><span style="font-size: medium;"><strong>File/Directory</strong></span></th>
<th><span style="font-size: medium;"><strong>Purpose</strong></span></th>
</tr>
<tr>
<td><span style="font-size: medium;"><code>app/</code></span></td>
<td><span style="font-size: medium;">Core application (app) code, including models, views, controllers, and helpers</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>app/assets</code></span></td>
<td><span style="font-size: medium;">Applications assets such as cascading style sheets (CSS), JavaScript files, and images</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>config/</code></span></td>
<td><span style="font-size: medium;">Application configuration</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>db/</code></span></td>
<td><span style="font-size: medium;">Database files</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>doc/</code></span></td>
<td><span style="font-size: medium;">Documentation for the application</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>lib/</code></span></td>
<td><span style="font-size: medium;">Library modules</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>lib/assets</code></span></td>
<td><span style="font-size: medium;">Library assets such as cascading style sheets (CSS), JavaScript files, and images</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>log/</code></span></td>
<td><span style="font-size: medium;">Application log files</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>public/</code></span></td>
<td><span style="font-size: medium;">Data accessible to the public (e.g., web browsers), such as error pages</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>script/rails</code></span></td>
<td><span style="font-size: medium;">A script for generating code, opening console sessions, or starting a local server</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>test/</code></span></td>
<td><span style="font-size: medium;">Application tests</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>tmp/</code></span></td>
<td><span style="font-size: medium;">Temporary files</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>vendor/</code></span></td>
<td><span style="font-size: medium;">Third-party code such as plugins and gems</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>vendor/assets</code></span></td>
<td><span style="font-size: medium;">Third-party assets such as cascading style sheets (CSS), JavaScript files, and images</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>README.rdoc</code></span></td>
<td><span style="font-size: medium;">A brief description of the application</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>Rakefile</code></span></td>
<td><span style="font-size: medium;">Utility tasks available via the <code>rake</code> command</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>Gemfile</code></span></td>
<td><span style="font-size: medium;">Gem requirements for this app</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>Gemfile.lock</code></span></td>
<td><span style="font-size: medium;">A list of gems used to ensure that all copies of the app use the same gem versions</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>config.ru</code></span></td>
<td><span style="font-size: medium;">A configuration file for Rack middleware</span></td>
</tr>
<tr>
<td><span style="font-size: medium;"><code>.gitignore</code></span></td>
<td><span style="font-size: medium;">Patterns for files that should be ignored by Git</span></td>
</tr>
</table>
=== Naming conventions ===

Revision as of 02:15, 16 September 2013

MVC architecture structure in Ruby on Rails

What is MVC

MVC is a design pattern and was developed in 1979 by Trygve Reenskaug. MVC dictates that the system be split into three distinct parts, a Model, View and Controller. This approach organizes the code into separate components, thereby facilitating maintainability.

Model

The Model generally contains the data for the application and is usually linked to a database back-end. This is the data structure that the application uses.
It contains the application state and also most of the business logic. The model has no knowledge of the user interfaces.

View

The view refers to the interface that is presented to the end-user. The view does not do any processing, but simply acts as the presentation layer, displaying the application data.

Controller

The controller receives events from the outside world [ or through some view] and performs some processing

It interacts with the model and redirects to the appropriate view.

MVC Rails

Directory Structure

File/Directory Purpose
app/ Core application (app) code, including models, views, controllers, and helpers
app/assets Applications assets such as cascading style sheets (CSS), JavaScript files, and images
config/ Application configuration
db/ Database files
doc/ Documentation for the application
lib/ Library modules
lib/assets Library assets such as cascading style sheets (CSS), JavaScript files, and images
log/ Application log files
public/ Data accessible to the public (e.g., web browsers), such as error pages
script/rails A script for generating code, opening console sessions, or starting a local server
test/ Application tests
tmp/ Temporary files
vendor/ Third-party code such as plugins and gems
vendor/assets Third-party assets such as cascading style sheets (CSS), JavaScript files, and images
README.rdoc A brief description of the application
Rakefile Utility tasks available via the rake command
Gemfile Gem requirements for this app
Gemfile.lock A list of gems used to ensure that all copies of the app use the same gem versions
config.ru A configuration file for Rack middleware
.gitignore Patterns for files that should be ignored by Git


Naming conventions