轨。如何在一个页面上放置几个控制器

时间:2014-09-20 11:30:42

标签: ruby-on-rails

我现在正在开发Todo应用程序,但我遇到了麻烦。登录后,我在人员档案(第一个控制器)上,我有新项目按钮(项目控制器-2d控制器),按下后,出现新任务按钮(任务控制器-3d控制器)。如何将所有这3个控制器的视图放在一个页面上。这是我的意思(大约)的一个例子:http://todo.kzotov.ru/

2 个答案:

答案 0 :(得分:1)

您可以在视图中放置任何内容。您可以急切地加载项目和任务,并将其全部放在配置文件页面上。您也不必将控制器和视图映射到模型,因此如果PersonsController或其他任何东西不是您正在寻找的东西,可能会做一些更具体的事情,比如ProfilesController并在那里托管所有这些功能。

答案 1 :(得分:1)

<强> MVC

您最好阅读MVC programming pattern -

enter image description here

最重要的是,如果您向应用程序发送请求,则只会点击一个 controller#action。您的多个“控制器”不应该被考虑 - 您应该只查看您在该特定时间访问的单个控制器操作。

为了更具体地说明这一点,让我详细说明它是如何运作的......


<强> OOP

Ruby(在Rails之上是一个框架),是object orientated

这不仅仅是一个奇特的短语 - 它是一种真正的编程模式,它允许您围绕要创建的数据/对象聚焦应用程序的 flow 。 Rails中的对象来自您的Model s - 整理&amp;为controllers

组织相应的数据

为了理解Rails的工作原理 - 您需要了解您所做的一切基于objects。你的路线,行动&amp;数据全部协同工作,提供我们从Rails中了解到的最终用户体验。发生的事情取决于你。

具体来说,您想查看您正在访问的

您不想加载多个控制器 - 您想构建多个模型并显示它们。这使您能够显示所需的HTML元素/文件:


<强>建议

我会确保您可以将所有活动都放在单个视图上,这意味着您必须确定控制器的数据,以便为您提供显示所需的数据:

#app/controllers/profiles_controller.rb
class ProfilesController < ApplicationController
   def index
      #your index
   end
end

#app/views/profile/index.html.erb
<%= link_to "task", task_path %>

您可能想要做的是创建一个单独的路径/方法,使他们能够在单击初始按钮时撤回ajax数据。如果你需要的话我可以详细说明,但是我给你的东西应该是充足的思考