Rails 3在另一个控制器的视图中同时呈现控制器的多个动作的响应

时间:2012-05-30 10:49:13

标签: ruby-on-rails-3 json controller actionmethod

使用 Rails v 3.0.11,Ruby v 1.9.3

我有一个页面上有“报告”链接,点击它可以调用 ReportsController #index

class ReportsController < ApplicationController
  def index
    # Renders index.html.haml
  end
end

现在我已经有一个已经存在的JSON API( ReportsDataController ,如下所示)返回我需要重用的JSON响应。

Controller返回JSON响应(我的JSON API)

class ReportsDataController < ApplicationController

  respond_to :json

  def users_events_activity
    user_activity_data_obj = find_user_events_activity_per_day
    respond_with user_activity_data_obj
  end

  def users_comments_activity
    user_comments_data_obj = find_user_comments_activity_per_day
    respond_with user_comments_data_obj
  end

end

在我的 app / views / reports / index.html.haml 上,我需要同时呈现返回的数据 操作 ReportsDataController#users_events_activity ReportsDataController#users_comments_activity

是否有Rails标准方法可以实现上述要求?如果没有,请有人建议我采取一些方法来达到同样的目的吗?

谢谢,

Jignesh

1 个答案:

答案 0 :(得分:0)

如果您不想发出两个请求,可以随时创建另一个控制器操作并像这样呈现JSON:

class ReportsDataController < ApplicationController

  respond_to :json

  def users_combined_events_comments_activity
    user_activity_data_obj = find_user_events_activity_per_day
    user_comments_data_obj = find_user_comments_activity_per_day
    respond_with { activities: user_activity_data_obj, comments: user_comments_data_obj }
  end
end