2016年3月20日 星期日

Ruby on Rails的那些符號

一開始接觸Ruby on Rails就被一大堆符號搞的暈頭轉向的,是該來整理一下思緒了。

  • local variable 區域變數
    這個好理解,就是一般的變數。
    不過值的小筆記的: 
    Ruby的local variable不需要事先宣告,呼叫的時後Ruby會自動指定一個nil值。舉個小小的例子:
    def total_price
    sum = 0sum = sum + 100 
    return sum
    end
  • @ instance variable 實例變數
    這個對我來說就抽象了(好在有google)
    instance variable代表的是可以在同一個class的各種method之間互相傳遞,出現時前面會加上@符號,在Ruby on Rails隨處可見,instance variable不僅在controller可以用,還可以傳到view使用。舉個小小的例子:

    # group controller 
    def index
    @group = Group.all
     group = Group.all
    end
    # view 
    <%= @group %>  # => 顯示所有groups 
    <%= group %>  # => 錯誤:NoMethodError 

  • 符號 : 
    這真的困擾我好久好久.....
    有一陣子以為他是代表資料庫欄位。符號並不是一個變數,最常看到的就是在controller中會出現這麼一行code: Product.find(params[:id])
    params是在瀏覽器發送http request給伺服器時,除了指定網址以外,也會帶一些參數給伺服器。例如使用者登入的時候,就要將帳號和密碼傳給伺服器。在Rails的controller裡面,就是用params這個變數來代表http request送出的參數。
    http request時會包含非常多資料,
    利用讀取物件的[]引號來指定:id,Rails當中不管是從ActiveRecord資料庫當中查資料、或是從params中讀取資料,都是使用:來查詢
  • Constant 常數
    開頭大寫的變數就是常數,Rails當中,任何model、class、module的名稱都是常數


     

沒有留言:

張貼留言