Ruby On Rails REST:自定义POST请求的URL模式

时间:2011-07-20 00:43:13

标签: ruby-on-rails rest routing rubygems rails-routing

我是Ruby On Rails的新手,需要一些帮助来实现REST协议。

每当您在REST上执行POST时,您都会获得一个URL,例如: http://my-site.com/id/1 我需要一个URL格式的自定义响应,我在上面的示例中给出了。 让我说我正在对参数<main-id>123</main-id>做一个帖子 我正在寻找的自定义响应是http://my-site.com/123/id/1 我想要实现的是,无论我在帖子中传递的参数ID,我都希望它作为响应URL输出的一部分。

感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以在控制器中指定任何URL,例如:

def create
  ... # create record here
  redirect_to "/#{params[:main_id]}/id/#{@record.id}"
end

当然,您可能希望根据您定义的路线使用网址助手:

def create
  ... # create record here
  redirect_to my_oddball_path(@record, :main_id => 123)
end

答案 1 :(得分:0)

如果您使用的是Rails 3,则可以使用正确的控制器/操作添加此路由

 match ':main_id/id/:id', :controller => 'foo', :action => "bar", :via => :post, :as => main_id

然后你可以使用帮助器main_id_path(main_id,@ record)