Rails의 장점
- Meta Programming : 프로그램이 다른 프로그램 코드를 만들어주는 기법.
- Active Record : DB에 객체를 저장하는 Active record framwork를 도입
- less setting : .NET 에서의 web.config 등의 설정 파일들이 거의 필요 없게 된다.
- auto unittest code : meta programming을 통해 생성된 코드는 모두 단위 테스트를 갖는다.
- development, test, service 환경의 완벽 제공
Rails Project의 구조
- app : application component를 담고 있다. model, view, controller에 해당되는 각각의 Directory가 존재한다.
- components : model, view, controller 들의 작은 application이 component화 되어 저장되어 있다.
- config : rails application에 대한 설정 코드 값을 가지고 있다.
- db : db를 access 하는 model 객체를 가지고 있다.
- doc : 자동으로 RubyDoc을 생성시킨다.
- lib : 외부 library를 제외한 모든 라이브러리들이 저장
- log : Error log의 자동 저장 folder
- public : javascirpt, image, css, html 파일과 같이 변하지 않는 정적 web resource를 넣어두는 디랙토리
- script : rails application에서 사용하는 tool과 scirpt를 담고 있다.
- test : test code가 위치
- tmp : 임시 directory
Example Controller and View
class GreetingController < ApplicationController
def index
@age = 8
@table = {"headings" =>["addend", "addend", "sum"],
"body" => [[1,1,2], [1,2,3], [1,2,4]] }
end
end
<h1>Simple expression</h1>
<p> Tommy is <%= @age %> old </p><h1>Simple Expression</h1>
<% for i in 1..5 %>
<p> Heading number <%= i %> </p>
<% end %>
<h1>A simple table</h1>
<table>
<tr>
<% @table["headings"].each do |head| %>
<td>
<b><%= head %></b>
</td>
<% end %>
</tr>
<% @table["body"].each do |row| %>
<tr>
<% row.each do |col| %>
<td>
<%= col%>
</td>
<% end %>
</tr>
<% end %>
</table>