2017-05-26 100 views
1

我创建了一个问卷调查应用程序,允许用户创建问卷。Ruby on rails:一个视图中的多个控制器

问卷是由两个不同的控制器的:

  • 问题
  • 含量(允许在问题之间标题,以打破他们)

我然后有一个“Questionnaire_Items”控制器,这就是将问题和内容聚集在一起的原因。这包含question_id或content_id和一个订单值。

因此,我需要我的questionnaire_item视图来提取问题数据或内容数据(取决于是否存在question_id或content_id)。

这样做的最好方法是什么? 有没有更好的方法来实现我想要的?

感谢您的任何帮助。

+0

你有分开的前端和后端,还是单个“单片”应用程序? (整个事情是否在rails上,或者你有'EmberJS' /'AngularJS' /'ReactJS'/...前端,从API中使用JSON?) –

+0

只需在rails上使用ruby。 – user3429445

+0

你尝试过渲染“some_view”,layout:false'吗? – fangxing

回答

2

我觉得你可能会想这有点不对。见这里http://guides.rubyonrails.org/action_controller_overview.html#what-does-a-controller-do-questionmark;一个控制器接收到一个请求并决定响应,所以你的控制器决定渲染的视图,视图并不决定从哪个控制器“拉”。此外,问题和内容不是模型?

我能想到的最简单的方法就是在控制器中创建一个问卷项目,然后呈现您的视图。

+0

感谢您的回复,我明白,但我使用了错误的术语。 您是对的我需要在我的控制器中创建问卷项目。此项目需要包含“问题”和“内容”,然后我想根据问卷调查表中的“订单”对其进行排序。这是我一直在努力的一点。 – user3429445

+0

我明白了。看看这篇文章:https://www.sitepoint.com/7-design-patterns-to-refactor-mvc-components-in-rails/ 我认为服务对象部分可能对你有用。 – Lunga

0

你想要的是做数据库查询。试试你的控制器上是这样的:

作为例子

Question.find_by(id: idName) 

和示例内容

Content.find_by(id: anotherIdName) 

你必须了解的问题和内容,例如,从一个类的对象,然后,该方法find_by来自activeRecord允许您在数据库上进行搜索。

相关问题