gpt4 book ai didi

ruby-on-rails - 我应该把模型访问的函数放在哪里? -- rails 3.1

转载 作者:行者123 更新时间:2023-12-01 07:43:34 24 4
gpt4 key购买 nike

有人告诉我,帮助程序仅用于 View 所需的功能。

我应该把模型常用的功能放在哪里? Controller 呢?

放置常用函数的约定是什么:

1) 型号

2) 意见

3) Controller

问题:在 lib 中创建一个模块来保存函数并将该模块包含在一个类中将为该类创建大量实例方法。

问题:三者中常见且需要的功能呢?

最佳答案

Problem: Creating a module in lib to hold the functions and including the module in a class would create a boat-load of instance methods for the class.



先整理,再优化

Problem: What about functions that are common and needed in all three? Do you really have methods that are needed in all the three and not exist yet ? If yes, may be you can give an exemple



我认为问题应该是把逻辑放在哪里。
你应该先想想你的方法做了什么,然后再考虑把它放在哪里。
但是,无论您创建什么,当它变大或变得有值(value)时,您都应该真正考虑将其导出为 gem/plugin。

内部导航逻辑(显示什么以及操作后去哪里): Controller
  • 应用导航逻辑;应用程序 Controller
  • 应用逻辑子集;使用主 Controller 创建命名空间,类 API_controller < application_controller

  • 数据逻辑(如何操作、处理数据):模型
  • 数据;模型类方法(搜索、排序、计数、宏处理...)
  • 基准;模型实例方法(修改、微处理...)

  • 数据展示逻辑(如何展示数据):Helper, Partial 和 Decorators
  • 在我看来,助手不是为此而设计的。
  • 特定数据的部分句柄布局。
  • 应用程序装饰器;处理通用数据表示帮助
  • 范围装饰;你可以使用继承

  • 布局语言逻辑(布局语言帮助):Helper
  • 特定于您的应用程序; application_helper
  • 特定于模型...; model_helper,但你应该考虑装饰器
  • 通用的;将其导出到 gem 中( super 表单助手、模板系统...)

  • 布局逻辑(我应该显示这个菜单吗?):?
  • Helper/decorator/model can 应该回答这个问题:@user.can_edit?(@article)
  • 布局处理显示 <%= render :partial => allowed ? “某事”:“其他事” %>

  • 我认为,如果您不在此配置中,则您正在创建一种后端系统。
    所以它应该在 lib 中,然后在 gem 中。

    这个组织只是一个例子。最重要的是组织代码并拆分不同的逻辑层,并在添加新功能后毫不犹豫地重构/导出代码以使其通用...

    关于ruby-on-rails - 我应该把模型访问的函数放在哪里? -- rails 3.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149802/

    24 4 0