【问题标题】:Designing Web Sites with Ruby on Rails使用 Ruby on Rails 设计网站
【发布时间】:2010-09-15 13:56:54
【问题描述】:

我只是在学习 Ruby on Rails。我读过几本书,看过很多 Railscast,看过一些例子。

但是,当我使用 Rails 处理我的第一个严肃项目时,我一直对如何正确实现一些我见过的大多数教程所缺乏的非常基本的网站功能感到困惑。

例如:导航菜单。有很多关于如何制作静态的教程,但是动态的呢?如果我想制作一个跨页面的导航栏,我该怎么做?

我认为学习此类内容的最佳方法是查看示例代码。 RoR 中有没有好的开源网站?我可以查看任何示例代码吗?

我想我的问题确实是使用 MVC 的结果。基本的想法是非常基本的,我理解这一点。但似乎大多数应用程序的每个部分都彼此完全分开......如果我想将来自两个模型的数据组合起来显示在同一页面上怎么办?以我提出的示例为例,如果我有一个 NavModel 和一个 PageModel,我的 PageController 可以访问这两个模型吗?我想我假设一个 PageController 只能访问一个 PageModel,而不能访问其他。我见过的所有例子似乎都是这样运作的……这是一个错误的假设吗?

或者我完全没有抓住重点,那是“做错了吗?”

【问题讨论】:

  • 模型和控制器之间没有一对一的关系。编写一个使用来自许多不同模型的数据的控制器没有错。模型是您的数据。控制器是你的命令。视图就是您的屏幕。

标签: ruby-on-rails


【解决方案1】:

Open Source Rails 是在 Rails 中实现的站点的存储库。

【讨论】:

    【解决方案2】:

    你读过哪些书?我认为,从长远来看,更好地理解 MVC 和 Rails 比示例代码对您的帮助更大,您可能会想在不理解的情况下复制这些示例代码。

    您所描述的问题与查找和显示任何类型的数据并没有什么不同,我相信您已经在博客等的 sn-ps 中看到了这些数据(使用部分和/或布局是也许是唯一的区别)。

    如果您还没有阅读它们,您应该尝试Agile Web Development with Rails 和The Rails Way。

    还有severalbooks 将引导您构建一个示例应用程序,其中包含注释以确保您了解自己在做什么。

    【讨论】:

    • 我已经阅读了 Rails Way,“Simply Rails 2”...我正在编辑我的问题以包含更多细节。
    【解决方案3】:

    【讨论】:

      【解决方案4】:

      您的控制器可以访问您的任何模型,因此如果 PageController 需要访问您的 NavModel 也没关系。我认为通常 Nav 控制器或助手将包含准备导航视图所需的方法,但在不知道您的项目细节的情况下我不能肯定地说 - 如果您认为它是 Page 逻辑的一部分,那么把它放在那里。

      您可能也对这个“What goes where”问题感兴趣。

      【讨论】:

        【解决方案5】:

        这是一个如何在您所在的页面中突出显示当前菜单项

        http://snippets.dzone.com/posts/show/2016

        【讨论】:

          猜你喜欢
          • 2011-12-25
          • 2016-06-17
          • 1970-01-01
          • 1970-01-01
          • 2016-10-20
          • 2012-02-07
          • 1970-01-01
          • 1970-01-01
          • 2015-10-06
          相关资源
          最近更新 更多