Как мне перенаправить на конкретное действие в другом контроллере в Rails 3? - PullRequest
0 голосов
/ 17 сентября 2010

Я пишу API;в этом API у меня есть FruitBasket модель с Fruits.Отдельный фрукт может принадлежать более чем одной фруктовой корзине за один раз.FruitBasket и Fruit оба являются ActiveRecord объектами.

Если кто-то выполняет GET на /fruit/100/baskets, я хочу предоставить JSON-список корзин, в которых есть эти фрукты, в видеидентификаторы корзины.Если есть только одна корзина, я хочу перенаправить на /basket/x, где x - идентификатор корзины.Примерно так:

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

Что я положу в мои routes и FruitsController, чтобы это осуществить?

1 Ответ

1 голос
/ 17 сентября 2010

Я не уверен, что вы действительно хотите перенаправить их туда, но если вам необходимо:

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

Однако можно ожидать, что API просто вернет массив корзин, и если бы была только одна корзина, то это был бы массив с одним элементом.

...