我有一个Queries Controller
处理API请求的结果,我试图将该api对象传递给另一个控制器,而不必将信息保存到数据库(应用程序的关键点是返回某个邮政编码中可用的电影列表,然后允许用户查看这些结果并与该电影周围的朋友一起创建活动,因此当api调用时,无需将电影信息保存在我的数据库中制作,因为它返回了很多电影)
以下是create
中的Queries Controller
方法:
def create
@query = Query.new
@query.zip = query_params['zip']
@query.date = query_params['date']
@results = data(@query.zip, @query.date)
redirect_to results_path, :results => @results
end
以及传递给
的results
方法
def results
end
然后是我正在尝试显示结果对象的相应Results view
:
<h3>Index</h3>
<%= results %>
答案 0 :(得分:0)
尝试将params散列中的结果传递给results
方法
def create
@query = Query.new
@query.zip = query_params['zip']
@query.date = query_params['date']
@results = data(@query.zip, @query.date)
redirect_to results_path(:results => @results)
end
然后:
def results
@results = params[:results]
end
在视图中:
<h3>Index</h3>
<%= @results %>
答案 1 :(得分:0)
<强> MVC 强>
我的想法是你的想法是针对MVC programming pattern(Rails所基于的):
控制器意味着从HTTP获取request
,并使用它来操作屏幕上的数据通过模型。然后,该模型可以提供您需要的data
,可以将其传递给视图。
发送请求跨控制器是违反此模式的IMO - 您可以更好地在单个controller
action
中处理数据,然后从模型中提取数据。
话虽如此,我认为你做得比较好,尽管你可能希望考虑在系统层面进行重构。
-
<强>修正强>
p>
instance variable
您应该可以使用它来传递您需要的数据。
另一种方法是直接在results
mjhlobdell
方法中操纵/呈现响应,如下所示:
#app/controllers/queries_controller.rb
Class QueriesController < ApplicationController
def query
...
redirect_to results_path(results: @results)
end
end
#app/controllers/results_controller.rb
Class ResultsController < ApplicationController
def results
@results = params[:results]
end
end