2013年2月18日 星期一

Rails 筆記


01
$ rails new tickets

02
rails generate scaffold ticket name:string seat_id_seq:string address:text
                                  price_paid:decimal email_address:string

03
rake db:migrate

04
$ rails g migration AddPhoneToTickets phone:string
注意:要手動更改頁面模板

05
設定哪些欄位值是可以被更改的,否則會出現Can't mass-assign protected attributes
fix app/models/ticket.rb

    class Ticket < ActiveRecord::Base
      attr_accessible :address, :email_address, :name, :price_paid, :seat_id_seq,:phone
    end


06
半自動,建立MODEL
$ rails g model ad name:string description:text price:decimal seller_id:integer email:string img_url:string

07
半自動,建立CONTROLLER
$ rails g controller ads

08
HTML頁面生成的流程,及路由(route)設定
    1.Controller的功用是產生Html所需的資料
    2.View(Page template)
    ERb將controller及view產生出Html

   但ERb要知道在什麼情況下要找哪一個controller和view配對使用,這透過Route來定義!

   Route典型的指定方式:(config/routes.rb)
                     match      "/ads/   :id"  => "ads   #      show"
                                             URL Pattern  參數           Controller                View
                                                                                     ads_controller.rb      show.html.erb
09
Ruby
表達式<%= ......%>  <%= @ad.name %>
腳本段<%   ......%>
            <% for ad in @ads %>
                 <li><a href="/ads/<%= ad.id %>"><%= ad.name %></a></li>
           <% end %>

10
控制器的例子
 # GET /tickets/1
  # GET /tickets/1.json
  def show
    @ticket = Ticket.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @ticket }
    end
  end

  # GET /tickets/new
  # GET /tickets/new.json
  def new
    @ticket = Ticket.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @ticket }
    end
  end










沒有留言:

張貼留言