2010-09-17 6 views
0

J'écris une API; dans cette API, j'ai un modèle FruitBasket qui a Fruits. Un Fruit particulier peut appartenir à plus d'un FruitBasket à la fois. FruitBasket et Fruit sont tous deux ActiveRecord objets.Comment rediriger vers une action spécifique dans un contrôleur différent dans Rails 3?

Si quelqu'un effectue un GET sur /fruit/100/baskets, je veux fournir une liste JSON de paniers qui ont ce fruit, sous la forme d'ID de panier. S'il n'y a qu'un seul panier, je veux rediriger vers /basket/x, où x est l'identifiant du panier. Quelque chose comme ceci:

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 

Qu'est-ce que je mets dans ma routes et la FruitsController de retirer ceci?

Répondre

1

Je ne suis pas sûr que vous voulez vraiment les rediriger là-bas, mais si vous devez:

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

Cependant, s'attendrait une API simple retour à un tableau de paniers, et s'il n'y avait qu'un seul panier, alors ce serait un tableau avec un élément.

Questions connexes