【问题标题】:General Questions about Ruby on Rails关于 Ruby on Rails 的一般问题
【发布时间】:2012-12-12 00:46:47
【问题描述】:

大家好,圣诞快乐!

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

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails routes controllers


    【解决方案1】:

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

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

    【讨论】:

    • ActiveAdmin gem 也值得一看
    【解决方案2】:

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

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

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

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

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

    HTH。

    【讨论】:

    • 非常感谢您的回答。现在一切都清楚了。
    【解决方案3】:

    圣诞快乐!

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

    通常最好使用宝石而不是从头开始制作。 你可以查看这个link,它教你如何在 twitter bootstrap 中使用 devise 和 cancan(用于查看)。但是,如果您打算学习 Rails,那么我最好建议您从头开始学习,因为您将对正在发生的事情有所了解。你可以看到这个tutorial,它从头开始完成大部分任务。

    享受 Rails!

    【讨论】:

      猜你喜欢
      • 2011-08-17
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多