Rails 模型/控制器结构
Posted
技术标签:
【中文标题】Rails 模型/控制器结构【英文标题】:Rails Model/Controller Structure 【发布时间】:2012-03-29 10:07:04 【问题描述】:我最近刚刚开始使用 ruby on rails 进行编程,但我一直无法理解我应该如何构建和组织我的所有代码,特别是如何区分某些脚手架/模型/控制器应该是什么做。
例如,我有一个应用程序,我想在其中创建一个只有介绍页面的首页,让查看者可以选择登录或注册(标准欢迎屏幕)。我已经生成了一个用户脚手架,我计划使用它来处理用户根据他们的个人资料看到的所有主要页面。我也一直在使用 devise 来处理登录和注册。
但是,我不确定如何处理这个欢迎页面。到目前为止,我只是更改了用户脚手架自动生成的 index.html.erb,但它似乎并不适合,因为它实际上并不是与用户个人资料有关的页面。
是否有关于如何分离控制器功能的一般约定?我应该如何处理不一定与特定数据库方面有任何关系的页面(例如,联系页面、欢迎屏幕等)。
另外,我对默认的 application_controller.rb 的用途有点困惑。看起来一切都在扩展它,但我应该改变它(可能用于我上面提到的通用页面)吗?
提前致谢,很抱歉发了这么长的帖子!
【问题讨论】:
【参考方案1】:您的索引或主页可能是一个带有视图的控制器。您可以通过键入以下内容生成控制器:
rails generator controller Home main
请注意,您可以将其缩短为
rails g controller Home main
之后,如果您编辑您的 routes.rb 文件,您可以将此控制器和操作附加到根指令:
root :to => 'home#main'
ApplicationController
是您所有其他控制器的扩展源。如果您想在您的控制器之间共享代码,那么您应该将该代码放在ApplicationController
中。
【讨论】:
【参考方案2】:如果您想要一个通用主页,只需生成一个您喜欢的名称的控制器。我最近有两个叫 play 和 lycee。
你说得对,ApplicationController 主要是要扩展的。有时您会在其中放置一些站点范围的代码,但它会很小。
【讨论】:
以上是关于Rails 模型/控制器结构的主要内容,如果未能解决你的问题,请参考以下文章