Rails:按操作类型确定RESTful http方法

时间:2011-07-17 11:31:10

标签: ruby-on-rails ruby-on-rails-3 rest

我只是想知道rails是否有任何内置的方法来确定动作名称(?)的正确http方法(获取,发布,放置,删除)

所以,例如,如果我要输入“new”作为动作,那么rails有没有办法实现它应该通过“get”来请求?

如果没有,第二个问题......我尝试手动创建一个哈希,将静态操作映射到默认方法 - 具体来说:

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

然后使用(如果action =:show)

调用该哈希
actionhash[action] action, :id => 123

困难在于当我使用'get'值创建哈希时,它会返回:

  

未定义的局部变量或方法`get'用于#>

因此,假设没有内置的方法来确定正确的方法,我如何将http方法输入哈希?

1 个答案:

答案 0 :(得分:1)

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

send(actionhash[action], :id => 123)
但是,丑陋。