gpt4 book ai didi

ruby-on-rails - 前端和后端应该由不同的 Controller 处理吗?

转载 作者:行者123 更新时间:2023-12-04 03:00:00 26 4
gpt4 key购买 nike

在我以前的学习项目中,我总是使用单个 Controller ,但是现在我想知道这是否是好的做法,甚至总是可行的。

在所有RESTful Rails教程中, Controller 都具有showeditindex View 。如果授权用户已登录,则edit View 变为可用,并且index View 显示其他数据操作控件,例如删除按钮或指向edit View 的链接。

现在,我有一个Rails应用程序,它完全属于此模式,但是index View 不可重用:

  • 普通用户会看到一个华丽的索引页面,其中包含很多图片,布局复杂,不需要Java脚本,...
  • Admin用户索引具有完全不同的简约设计,jQuery表和许多其他数据,...

  • 现在我不确定如何处理这种情况。我可以想到以下几点:
  • 单个 Controller ,单个 View :使用if语句将 View 分为两个大块/部分。
  • 单个 Controller ,两个 View :indexindex_admin
  • 两种不同的 Controller :BookControllerBookAdminController

  • 这些解决方案似乎都不完美,但是现在我倾向于使用3rd选项。

    首选的方法是什么?

    最佳答案

    几乎每当我获得一个新项目时,我都会问自己这个问题。我通常选择以下两种解决方案之一:

    1)。单 Controller ,单 View

    除非项目真的很简单,而且只有一种或两种类型的用户,否则我现在几乎永远不会选择这种解决方案。如果您有多个用户类型,则最好使用解决方案2。尽管此解决方案可能很吸引人,因为您认为可以通过减少编写代码来节省一些时间,但最终, Controller 和 View 的复杂性将会增加。更不用说您必须考虑的所有极端情况。这通常意味着错误。

    我的公司曾经不得不挽救一个失败的项目,它有3个用户类型。 (管理员,业务和成员)。他们使用了解决方案#1。代码处于可怕的状态(这就是为什么我们被要求拯救该项目的原因)我们开玩笑地说这不是MVC,而是MMM。 (模型-模型-模型)这是因为未正确提取业务逻辑并将其放入模型中,而是在 Controller 和 View 中进行了传播。

    2)。多 Controller ,多 View

    这些天,我越来越多地使用此解决方案。我通常使用用户类型为 Controller 命名空间。例如:

    在“应用程序/ Controller ”中

    class BookController < ApplicationController
    end

    并在“应用程序/ Controller /管理员”中
    class Admin::BookController < Admin::BaseController
    end

    填写BookController时只需要考虑普通用户,填写 Admin::BookController时只需要考虑管理员用户

    我不确定是否有更好的方法,但这是我从到目前为止完成的十几个项目中学到的...

    关于ruby-on-rails - 前端和后端应该由不同的 Controller 处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2750032/

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