【问题标题】:How do I redirect to a specific action in a different controller in Rails 3?如何在 Rails 3 中重定向到不同控制器中的特定操作?
【发布时间】:2010-09-17 13:11:11
【问题描述】:

我正在编写一个 API;在这个 API 中,我有一个 FruitBasket 模型,它有 Fruits。一个特定的 Fruit 一次可能属于多个 FruitBasket。 FruitBasketFruit 都是 ActiveRecord 对象。

如果有人在/fruit/100/baskets 上执行GET,我想以篮子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 中添加了什么来实现这一点?

【问题讨论】:

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


    【解决方案1】:

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

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

    但是,API 会简单地返回一个篮子数组,如果只有一个篮子,那么它将是一个包含一个项目的数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      相关资源
      最近更新 更多