看板 Ruby 關於我們 聯絡資訊
最近開始學習ruby,有了一些基礎的概念,同時也接觸了rails 買了聖經來看,雖然rails新版本的一些方法已不同於書上所寫的 不過為了練習,就先使用之前的版本來操作 有個問題想請教各位版友前輩 例如在練習scaffold時,知道scaffold 已經為controller建制了8個action 但我要再去了解controller檔中這些action程式碼的意思,常常會感到吃力 甚至沒辦法理解這些程式碼所表達的意思 例如用這個指令 ruby script/generate scaffold product admin 產生以下controller程式碼: class AdminController < ApplicationController def index list render :action => 'list' end # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html) verify :method => :post, :only => [ :destroy, :create, :update ], :redirect_to => { :action => :list } def list @product_pages, @products = paginate :products, :per_page => 10 end def show @product = Product.find(params[:id]) end def new @product = Product.new end def create @product = Product.new(params[:product]) if @product.save flash[:notice] = 'Product was successfully created.' redirect_to :action => 'list' else render :action => 'new' end end def edit @product = Product.find(params[:id]) end def update @product = Product.find(params[:id]) if @product.update_attributes(params[:product]) flash[:notice] = 'Product was successfully updated.' redirect_to :action => 'show', :id => @product else render :action => 'edit' end end def destroy Product.find(params[:id]).destroy redirect_to :action => 'list' end end 抱歉貼了一大串 其中基本的變數、def方法宣告、for迴圈等方法我是看得懂的 不過像是下面者種,我就無法了解他的意思 例如: def list @product_pages, @products = paginate :products, :per_page => 10 end def show @product = Product.find(params[:id]) end 我有買了向ruby之父學程式這本ruby教學書來看 不過也找不到上面這種類似語句的範例教學 所以我想請問各位前輩 如果要了解這些程式碼的意思 我該從哪個方向來加強呢? 能不能提供小弟一個方向或是參考的書目或是網站 因為我覺得學習ruby on rails是一件快樂的事 只是目前卡關了 所以想請大家幫幫忙 先謝謝大家了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.162.55.7
godfat:不管問幾次,我還是推薦 Programming Ruby... XD 03/13 19:02
godfat:不過要買的話,我會建議先看網路的,等 3 版出再買 3 版 03/13 19:03
GoOdGaMe:了解 那我就從這本開始看起囉 03/13 23:57
godfat:http://www.pragprog.com/titles/ruby3/ 今年四月二十五 03/14 00:04
deva:你的問題,在 Agile Web Development with Rails 2/e 有解答 03/15 19:25
janyfor:list 找出所有資料 一次列出10筆 show 找出id的資料 03/16 00:16
fayhong:Ruby for Rails 也不錯用 :) 03/19 20:30