如何重定向到Rails 3中不同控制器中的特定操作?

时间:2010-09-17 13:11:11

标签: ruby-on-rails routing ruby-on-rails-3 controllers

我正在编写API;在此API中,我有一个FruitBasket模型,其中包含Fruits。特定水果一次可能属于多个FruitBasket。 FruitBasketFruit都是ActiveRecord个对象。

如果有人在GET上执行/fruit/100/baskets,我想以篮子ID的形式提供包含该水果的篮子的JSON列表。如果只有一个购物篮,我想重定向到/basket/x,其中x是购物篮的ID。像这样:

class FruitsController < ApplicationController
  respond_to :json

  def baskets
    @baskets = Fruit.find(params[:id]).baskets
    if baskets.size == 1
      # What goes here?
    else
      respond_with @baskets
    end
  end
end

我应该在routesFruitsController中放置什么来解决此问题?

1 个答案:

答案 0 :(得分:1)

我不确定你是否真的想将它们重定向到那里,但如果你必须:

...
if @baskets.size == 1
  redirect_to @baskets.first      
else
...

然而,期望API能够简单地返回一个Baskets数组,如果只有一个篮子,那么它将是一个包含一个项目的数组。