2011-07-17 57 views
0

我只是想知道,如果鐵軌具有由動作名稱確定正確的HTTP方法(GET,POST,PUT,刪除)的任何內置方式Rails的:用行動類型確定的RESTful HTTP方法

所以(?)例如,如果我要輸入「新」作爲動作,有沒有辦法通過「獲取」來獲得請求?

如果不是這樣,第二個問題...我試圖手動創建映射寧靜的行動,它們的默認方法的哈希 - 具體爲:

actionhash = { 
    :index => get, 
    :show => get, 
    :new => get, 
    :create => post, 
    :edit => get, 
    :update => put, 
    :delete => delete 
} 

散列,然後用(如果行動=呼籲:秀例如)

actionhash[action] action, :id => 123 

困難的是,當我用「得到」值的哈希值,它回來了:

未定義的局部變量或方法'get'for#>

因此,假設沒有內在的方法來確定正確的方法,怎樣才能將http方法輸入到散列中?

+0

你打算把這個代碼放在哪裏?目標是什麼? – kain

+0

Rspec匹配器的寧靜資源 – PlankTon

+1

我不明白爲什麼你要這樣做,但如果你想做的哈希你應該讓他們無論是符號或字符串。 ':index =>:get'或':index =>'get''等。 – Mischa

回答

1
actionhash = { 
    :index => :get, 
    :show => :get, 
    :new => :get, 
    :create => :post, 
    :edit => :get, 
    :update => :put, 
    :delete => :delete 
} 

send(actionhash[action], :id => 123) 

雖然很醜。

相關問題