gpt4 book ai didi

ruby-on-rails - 何时在Rails中创建新的 Controller

转载 作者:行者123 更新时间:2023-12-03 08:56:34 27 4
gpt4 key购买 nike

我想知道何时需要在Rails应用程序中创建 Controller 。

例如,我正在使用Rails进行敏捷Web开发中的教程,该应用程序创建了几个模型,所有模型都具有单独的 View 和容器。但是,我们还创建了一个Store Controller ,但是没有与之关联的模型。为什么我们需要一个没有模型的 Controller ?模型的 Controller 不能处理所有必需的操作吗?

这很常见吗?如果是这样,您如何确定什么时候需要 Controller ?

谢谢!

这些答案有帮助,谢谢。

我担心的是,当我自己开发某些东西时,我将开始创建无用的 Controller ,或者在另一方面,则不会创建必要的 Controller 。但是,我想我需要停止将 Controller 和模型视为1-1关系,对吗?如果我理解正确,那么可能有许多 Controller 访问一个模型,并且一个 Controller 中使用了许多模型?

最佳答案

更新:我强烈建议阅读How DHH Organizes His Rails Controllers,这比我的原始答案要好得多。

我认为,如果您换种说法,该问题会更合适:

为什么每个 Controller 都需要模型(在这种情况下为AR)?

当然,答案是,您不会。当您考虑 Controller 时,最好不要考虑数据,而要稍微退后一步,然后考虑资源。如果您在Internet上搜索REST,您会发现很多文章,其中大多数将包括术语资源和表示形式的各种说明。为了使这个故事简短,我们只是简单地说一下,资源就是所有值得一提的东西。文章是(集合)资源。商店是一个(单个的)成员资源。

以登录用户为例。您可能已经具有UsersController了(默认情况下),它将允许您添加新用户(创建资源),删除他们(删除资源),显示单个用户以及所有用户。如果仅考虑数据和 Controller ,则可能会开始在UserController中创建其他操作(如login_user),这很奇怪。如果您考虑资源,那就是“值得一提的所有内容或为此创建URI”,您可能会认为您需要另一个资源,即: session 。考虑一下这种方式:用户登录时,实际上是在创建 session 资源。退出后,您删除,删除资源。我建议在 Rails教程本书中对它进行更好的解释:http://ruby.railstutorial.org/chapters/sign-in-sign-out#sec:sessions

概括地说,这可以帮助您确定何时需要新 Controller :

  • 当您考虑将非RESTful操作放入log_incalculate_date等 Controller 中时。
  • 当您可以命名的东西足够“有趣”时,它可以作为一个单独的资源。
  • 同样,当您以“外部”风格进行开发时,这样的答案会更自然地出现:http://rubylearning.com/blog/2010/10/05/outside-in-development/

  • 总体而言,了解REST及其哲学将大有帮助。

    关于ruby-on-rails - 何时在Rails中创建新的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8049837/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com