2

嘿伙计们,圣诞快乐!

我是 ruby​​ on rails 的新手,我仍然对一些东西有点困惑:

我什么时候需要创建一个新的控制器,什么时候不需要?

我想创建一个带有单个搜索框的应用程序并搜索所有文章。我应该为起始页(搜索框)和搜索创建一个控制器吗?我应该为静态页面创建控制器吗?

我应该使用管理界面 gem 还是创建自己的?

普通用户现在应该有权创建文章,只有管理员。我应该使用其中一个管理界面 gem 还是创建自己的?

4

3 回答 3

2

Ruby on Rails 确实是 MVC,这意味着控制器将模型连接到视图。因此,一般来说,考虑更多面向资源是一种很好的做法:根据您想要找到/呈现的每个资源,您创建一个控制器。在您的情况下,例如:

  • ArticlesController:您的主视图,带有搜索框
  • PagesController: 对于静态页面,如果你需要一些 erb/haml
  • admin/ArticlesController: 用于管理文章

现在,完全静态的页面也可以放在public文件夹下,不需要控制器,除非您需要在页面上显示一些动态信息(例如文章总数)。

关于您的搜索框:恕我直言,这只是您的索引页面的一个参数。例如,在索引上显示最近的十篇文章,当搜索某个词时,显示相关文章,但在同一个控制器和相同操作上。

关于管理界面:是的,使用像rails_adminactive_admin这样的 gem ,它会让你立即开始。所以一定要这样做。当然,这些宝石非常通用,可能无法完全满足您的需求。应该是这种情况,您以后总是可以轻松恢复。

HTH。

于 2012-12-26T14:10:00.123 回答
2

Ruby on Rails 遵循 MVC 框架,控制器是包含您的操作的类,因此您需要为网站将提供的每个功能添加一个操作。从技术上讲,您可以在一个控制器中拥有所有操作,但这太糟糕了,因此我们通常会创建不同的控制器来以更好的方式组织您的路线和代码。 遵循控制器上的 Rails 指南。

对于管理界面 gem,您可以使用devisecancan,它们都非常可靠且经过良好测试。

于 2012-12-26T13:32:13.813 回答
1

圣诞节快乐!

正如 Khaled 建议的那样,Rails 是 MVC 架构,拥有每个页面的控制器总是好的。即使您现在可能有一个静态页面,但后来当您尝试使站点成为动态页面时,您将会非常困惑在哪里为特定视图页面添加方法。

一般来说,最好使用宝石而不是从头开始制作。您可以查看此链接,该链接教您如何将 devise 和 cancan 与 twitter bootstrap(用于查看)一起使用。但是,如果您打算学习 Rails,那么我最好建议您从头开始学习,因为您将对正在发生的事情有所了解。您可以看到本教程从头开始完成大部分任务。

享受铁路!!

于 2012-12-26T13:52:41.023 回答