開始 Rails 課程前,可以先閱讀 A List apart 的Rails 入門介紹。
下載投影片:Ruby 程式語言入門導覽、Rails 簡介與入門、RESTful Rails,以及最後的Ruby 生態圈一覽。
參考快速安裝 Rails 開發環境 Ubuntu 9.04這篇文章,執行安裝指令。
def say render :text => "Hello world!" end
def index end
<p>Hola!</p> <p><%= link_to 'hello world', :controller => 'welcome', :action => 'say' %><p>
def index
@events = Event.find(:all)
end
def show
@event = Event.find(params[:id])
end
def new
@event = Event.new
end
def create
@event = Event.new(params[:event])
@event.save
redirect_to :action => :index
end
def edit
@event = Event.find(params[:id])
end
def update
@event = Event.find(params[:id])
@event.update_attributes(params[:event])
redirect_to :action => :show, :id => @event
end
def destroy
@event = Event.find(params[:id])
@event.destroy
redirect_to :action => :index
end
<ul>
<% @events.each do |event| %>
<li>
<%= link_to event.name, :controller => 'events', :action => 'show', :id => event %>
<%= link_to 'edit', :controller => 'events', :action => 'edit', :id => event %>
<%= link_to 'delete', :controller => 'events', :action => 'destroy', :id => event %>
</li>
<% end -%>
</ul>
<%= link_to 'new event', :controller => 'events', :action => 'new' %>
<%=h @event.name %> <%=h @event.description %> <p><%= link_to 'back to index', :controller => 'events', :action => 'index' %></p>
<% form_for @event, :url => { :controller => 'events', :action => 'create' } do |f| %>
<%= f.label :name, "Name" %>
<%= f.text_field :name %>
<%= f.label :description, "Description" %>
<%= f.text_area :description %>
<%= f.submit "Create" %>
<% end %>
<% form_for @event, :url => { :controller => 'events', :action => 'update', :id => @event } do |f| %>
<%= f.label :name, "Name" %>
<%= f.text_field :name %>
<%= f.label :description, "Description" %>
<%= f.text_area :description %>
<%= f.submit "Update" %>
<% end %>
<%= f.label :name, "Name" %>
<%= f.text_field :name %>
<%= f.label :description, "Description" %>
<%= f.text_area :description %>
<%= render :partial => 'form', :locals => { :f => f } %>
before_filter :find_event, :only => [ :show, :edit, :update, :destroy]
protected def find_event @event = Event.find(params[:id]) end
validates_presence_of :name
<%= error_messages_for :event %>
map.resources :events
<%=h @event.name %> <%=h @event.description %> <p><%= link_to 'back to index', events_path %>
<% form_for @event, :url => events_path do |f| %>
<%= f.label :name, "Name" %>
<%= f.text_field :name %>
<%= f.label :description, "Description" %>
<%= f.text_area :description %>
<%= f.submit "Create" %>
<% end %>
<% form_for @event, :url => event_path(@event), :html => { :method => :put } do |f| %>
<%= f.label :name, "Name" %>
<%= f.text_field :name %>
<%= f.label :description, "Description" %>
<%= f.text_area :description %>
<%= f.submit "Update" %>
<% end %>
<%= javascript_include_tag :defaults %>
<p><%= link_to_remote 'Ajax hello', :url => { :controller => 'welcome', :action => 'say' }, :update => 'foobar' %></p>
<div id="foobar">
</div>
<%= link_to_remote 'ajax show', :url => event_path(event), :method => :get %>
<div id="content"> </div>
respond_to do |format|
format.html
format.js
end
page.replace_html 'content', :partial =>'event' page.visual_effect :highlight, 'content'
include AuthenticatedSystem
<%= render :partial => "users/user_bar" %>
before_filter :login_required
def index @events = Event.paginate(:page => params[:page], :per_page => 3, :order => "id DESC") end
<%= will_paginate @events %>