2010-08-24 82 views

回答

5

你看到的代碼片斷中所使用的語法並不侷限於render() ,但在許多其他Ruby on Rail方法中很常見。

該方法使用簡化語法接受哈希映射。
代碼相當於

def show 
    render({:text => params.inspect}) 
end 

其他代碼片段,其中包括相同的語法是:

def sign 
    Entry.create(params[:entry]) 
    redirect_to :action => "index" 
end 

url_for :controller => 'posts', :action => 'recent' 
url_for :controller => 'posts', :action => 'index' 
url_for :controller => 'posts', :action => 'index', :port=>'8033' 
url_for :controller => 'posts', :action => 'show', :id => 10 
url_for :controller => 'posts', :user => 'd', :password => '123' 

def show 
    @article = Article.find(params[:id]) 
    fresh_when :etag => @article, :last_modified => @article.created_at.utc, :public => true 
end 
+0

是我展示了一個lambda函數的例子嗎? – TIMEX 2010-08-24 22:00:12

+0

@TIMEX:'is_positive = lambda {| x | x> 0}'。您在問題示例中編寫的內容是調用其他方法的方法。 – kiamlaluno 2010-08-24 22:51:29

1

渲染:文本習語用於直接將文本呈現給響應,而沒有任何視圖。它在這裏用於調試目的,它將params散列的內容轉儲到響應頁面而不通過頁面視圖。

+0

什麼是:text => ...是一個哈希映射?該方法「呈現」將該散列圖作爲參數? – TIMEX 2010-08-24 07:37:45

+2

是的。它相當於'render({:text => params.inspect()})',但它有點乾淨。 :) – 2010-08-24 07:43:59

2

您已發佈的語法編寫

render({:text => "hello world"}) 

基本的漂亮的方式,您正在調用一個方法,傳遞一個Hash對象(這是一組鍵值對)。哈希包含1對,關鍵字爲:text(:表示它是一個稱爲文本的符號),其值爲「hello world」的字符串

我認爲您應該真正閱讀Ruby入門指南挖得太深入軌道。