首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该在rails应用程序中将自己的"模块"放在哪里?

在Rails应用程序中,将自己的"模块"放在哪里取决于您的目标和需求。以下是一些建议的位置:

  1. 应用程序根目录:如果您的模块是一个通用的功能,可以将其放在应用程序的根目录中。例如,如果您正在创建一个博客系统,您可能会将博客文章的模型放在根目录中。
  2. 引擎:如果您的模块是一个独立的功能,可以将其放在引擎中。引擎是一个独立的Rails应用程序,可以作为一个单独的组件添加到您的应用程序中。例如,如果您正在创建一个论坛系统,您可能会将论坛的模型和控制器放在引擎中。
  3. 模块:如果您的模块是一个更大的功能的一部分,可以将其放在模块中。模块是一个包含多个模型、控制器和视图的文件夹。例如,如果您正在创建一个电子商务网站,您可能会将购物车的模型和控制器放在购物车模块中。
  4. 服务:如果您的模块是一个与其他功能无关的功能,可以将其放在服务中。服务是一个包含业务逻辑的类,可以在您的应用程序中重复使用。例如,如果您正在创建一个社交媒体应用程序,您可能会将通知服务放在服务文件夹中。

总之,将您的"模块"放在哪里取决于您的目标和需求。在Rails应用程序中,您可以根据需要组织代码以最大限度地提高可重用性和可维护性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

前端 vs 后端:哪一个适合你?

希望这篇文章可以给刚开始职业生涯你一些值得思考东西。 定义 在刚开始学习软件开发时候,首先要经历心理斗争就是应该把关注点放在哪,前端还是后端?...后端 指的是应用程序数据处理层。这一层负责与数据库通信,并确定将哪些信息发送到要显示前端。例如 Ruby、Rails、Python、Java 等。...试一试水,看看当你用它时候,其中一个方向是否真的能吸引到你。同时,你要意识到,无论你选择哪个,一开始都会很困难。想说是,在你决定要把重点放在哪里之前,给自己一年或两年时间来研究整个流程。...因此,你需要自己做好调查。这很简单,只需要查看求职公告板并搜索后端和前端技术,看看都有哪些。 为什么选择后端 想我应该在这里加上一段为什么最终选择了后端,希望它可以在其他人做决定时帮助他们。...有些人可以看看网页,然后想办法把它放在什么地方。从来都不擅长这个,所以后端让更自然、更舒服。 没有什么是永恒 无论你决定专注于什么,要知道没有什么是永恒

1.5K20

使用Groovy和Gradle轻松进行数据库操作

这是一个稳定,安全选择,为此,很容易找到人才(或快速在职培训)。尽管今天有更多时髦流行语要放在简历上,但是Groovy很快就消失out尽风险似乎很小。...Groovy“行之有效”,是每个Java开发人员都应该在其工具箱中使用非常方便工具。...Gradle作为Groovy App Server 除了历史,让我们谈论一个最近用例,它使无法使用Groovy技能。需要为在多种环境中运行许多应用程序快速建立一个“键值”配置参数注册表。...想在源代码管理中将这些参数捕获为属性文件集合。...除了对java.io.File扩展之外,Groovy还提供了自己groovy.sql.Sql类来促进JDBC操作。

1.9K30
  • 《Prometheus监控实战》第8章 监控应用程序

    ,这样就可以对监控和指标进行分区 8.1.1 从哪里开始 开始为应用添加监控,一个不错选择是程序入口和出口。...如果你考虑将对特定服务请求数量作为应用程序指标进行测量,那么业务指标通常会对请求内容执行某些操作 8.2.3 放置指标 一旦知道了我们想要监控和测量内容,就需要确定将指标放在何处。...这有时被称为实用程序模式:一个metrics-utility类,它不需要实例化,只包含静态方法 8.2.4 实用程序模式 常见模式是使用客户端创建实用程序库或模块(https://prometheus.io...最显著地方是应用程序周围输出和外部子系统,例如数据库或缓存 如果应用程序发出日志,那么可以识别日志包含内容,并查看是否可以使用这些内容来衡量应用程序行为 8.2.6 监控应用程序示例 mwp-rails...我们不希望每次记录指标时,都需要手动创建注册表和指标,所以用实用程序代码来执行此操作 代码清单:创建Metrics模块 touch lib/metrics.rb 代码清单:Metrics模块 module

    4.6K11

    Laravel 5.0 之目录结构与命名空间

    以前它更像是 Rails/CodeIgniter 风格代码目录, 包含了应用逻辑, 应用配置, 视图模板, 持久化存储等除了静态资源以外几乎所有东西....由此带来是, Laravel 相关配置文件保存在了自己独立目录下, 资源文件--语言和视图--保存在了自己独立目录下, 数据库相关信息也保存在了它们自己目录下....但 5.0 版本改用 PSR-4 规范来实现主要逻辑自动加载已经是一大进步, 为把应用代码与 Laravel 进行分离提供了理论上可能. xxx 应该放在哪里?...如果 xxx 不属于上面的任何一种情况, 那么从目录结构就可以很清楚看出它应该放在哪里了. 代码中命名空间(namespace)是怎么工作?..."Confomo" 命名空间下. composer.json 文件里 PSR-4 自动加载语句会自动更新, Laravel 也清楚应该在哪里去寻找该命名空间下 filters, controlers

    1.4K40

    Phoenix 1.3,迈向正确道路

    rails, django, phoenix,你们错了 一文中提到: 说句不太好听的话,rails 等 framework 很容易引导人们走向一个 web 前端为中心歧路。...由此,我们可以打造逻辑更为清晰系统: ? 这样目录结构,一眼望去,我们就大概知道系统提供什么样服务,各个服务边界在哪里: ?...在 rails 里,logger 是一个模块,db connector 是一个模块,它们运行在当前代码所在上下文中。...这让rails, django, phoenix,你们错了 一文中提到例子,从结构上打造起来方便很多: ?...然而这种痛,是一个架构逐渐成熟 —— 走出全盘借鉴别人路子,结合语言特性,形成自己独特思路必经之路。

    1.5K150

    如何使用Passenger和Nginx部署Rails

    对于较小站点,只需采用1GB内存即可。没有服务器同学可以在这里购买,不过个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后在购买服务器。...第六步 - 部署 在本教程中,我们将直接在CVM上创建一个新Rails应用程序。我们需要一个rails gem来创建新应用程序。...-no-rdoc --no-ri rails 现在我们可以创建一个新应用程序。...root行是你要修改,以配合您Rails应用程序位置之一。如果您不想将域名分配给此应用程序,则可以跳过server_name行,使用您IP地址。...使用您CVMIP地址或者您域名: http://CVM_ip_address 验证结果: f8468672e27776a0263b92f0805396dd.png 您应该在服务器上看到Rails测试应用程序已经可以访问了

    5K20

    像一名教育者一样思考代码质量

    应用程序是用 Rails,前端一部分是用 Vue 写,然后我们还用 Node 编写了一些 lambda 函数。...团队其他人大部分都是 Rails 人员。 对于自己对 directives 使用感到少许得意。但我上司叫我停止使用这些东西,坚持使用正常 controllers。...觉得图表很棒!幸运是,它们已经被一些人采用了。特别是在架构层次,来说明不同模块是如何连接到另外一个模块。 然而,感觉图表仍然没有得到充分利用。...就像我在文章开头所说,如果你将自己当作一个教导团队其他人如何使用这段代码的人,很多公认关于 clean code 想法都会自然而然地产生。描述性变量名、模块化、恰当缩进,等等。...因为一直认为,用户测试是人们应该在代码库中做事情! 想想看,在文档最后一段所说: 问问你自己,是否会有其他人会很难理解你所写代码 可用性设计师一直在做这类事情!这是他们工作!

    74930

    vue项目实践003

    – 其中store划分modules划分维度是数据关联性,由于store本身支持modules组合,而且使用是混合在一起,所以我们还是会在index中将模块进行混入。...– 其中router是按照业务进行分模块,或者说是按照页面维度分,每个一级路由分一个路由模块,二级路由为页面名称,其中将一级路由设置为文件夹名称,二级路由路径与页面名称同名,为了简化这部分,一级路由名称定为...而对于通用性比较高api,一方面会定义在index.js中,另一方面会把这部分数据暴露在vuex中来达到目的。 – 额外介绍,除了以上三个,针对src根目录也设置了过滤器分业务模块实现方案。...业务内公共组件 与有的同学考虑不同是,在写一些组件时候,针对业务性比较强,但是针对当前业务公用一些拆分组件会定义在每个业务components目录下,而不是放在src/components,称之业务内公共组件...这种代码简单可以用一个标签承载,内容显示区别简单可以用三目,复杂应该在js方法中进行改造完之后或者过滤器实现。

    89420

    我们如何转型微服务?

    先加入了后端团队,App团队,负责巨石架构 Ruby on Rails 应用。当时我们没有把它称为遗留, 而是称它为母舰。App 团队拥有 Rails 应用程序所有内容, 包括旧用户界面。...Next是一个single-page JavaScript web 应用程序, 那时我们遵循标准实践, 并将其作为常规客户端构建到我们公共API中, 这是在 Rails 巨石架构中实现。...不是不能, 但它不会像我们把所有的东西都放在一个代码库中那样有效。相反, 我们应该在巨石架构和开发人员可用性方面构建更好工具和测试。这就是 Facebook 和 Etsy 模式。...这段代码在过去几年里受到了很多影响, 技术债务无处不在。除了我们自己制造混乱, 我们还必须从 Rails 2.x 升级到 3, 这本身就是一个巨大迁移。...这些团队被明确告知, 他们对自己模块全权负责。这意味着, 任何事情都会直接找到他们, 但他们也自由选择他们认为合理策略。如果他们决定把东西放在整理块里,也可以。

    87980

    系统架构 | 软件架构一致性

    而一旦选择了领域模型,那么在通常情况下,就不应该在同一个系统其他模块中采用事务脚本(Transaction Script)模式。否则,我们就违背了风格一致性。...即使某个开发人员选择解决方案或许是最优,但由于系统存在多种不同解决方案,就可能使得整个系统陷入混乱之中。例如,在曾经看到过一个系统中,就存在不一致数据库访问解决方案。...我们可以根据事先制订默认规则,通过反射技术完成对象创建,对象协作,甚至是应用程序组装。“惯例优于配置”关键,就在于它规定了形式上一致性。...在程序运行时,Rails会将分离部分组装在一起。组装过程默认按照命名约定与惯例进行,在一般情况下就不需要任何外部元数据配置信息。下图是RailsMVC架构: ?...当客户端向服务端发出请求后,Dispatcher会对请求url进行解析,并判断应该将请求发送到应用程序哪个部分,以及如何解析这一请求。

    2K70

    群晖NAS安装gitlab

    当然也建议将其他本地端口[自动]改为指定端口,比如22端口对应本地端口改为10022之类,因为后续还要修改配置文件,让克隆地址可以正常显示端口,同时也避免自动获取而带来端口变化而导致访问问题。...这时候可以直接访问地址了IP:10080,不知道为什么,程序运行没问题 访问时候不显示, 后来在反向代理哪里设置了一下 访问代理地址就没问题了!如图所示!...查看Gitlab网站文档,原来GitLab 14.0开始, 把密码放在了/etc/gitlab/initial_root_password里了。.../docker/gitlab/config/gitlab.rb # 32行修改以下配置 external_url 'https://:' 填写 external_url 'https...://nas.mrf.ink:10444' 这时候也要修改启动容器端口 群晖反向代理这么填写 配置电子邮件 #修改以下配置 gitlab_rails['smtp_enable'] = true

    2.3K20

    不是 Ruby,而是你数据库

    曾在一个拥有百万级用户应用程序中,导致数据库服务器集群崩溃:原因在于一个无关控制器简单更改,使 Rails 切换到一个外部连接,该连接具有巨大物化视图,本不应以这种方式连接(用于报告)。...最糟糕是,这些 “错误” 被团队贴上了 “以 Rails 方式完成” 标签。 Rails 里到处都是这样 footgun(footgun,意即伤自己枪,Rails 称其为“尖刀”。...译注:指在一个产品上添加一个新东西,容易让枪打着自己脚。表明设计不好,促使用户不敢加东西。)。其中大部分本身是无害。很容易以次优方式连接表,对未索引列进行排序或过滤。...开发 Rails 应用程序数量惊人,其中包含某种形式 .sort(params[:sort by]):仅在 2021 年,就开发了三个独立 Rails 应用程序,所有这些应用程序都可以通过使用...最明显一点是,你永远不能把所有的业务逻辑都放在数据库中,即使你想这样做。因此,你将在多个地方拥有业务逻辑,而不需要任何去往何处结构。所以把它放在一个地方显而易见解决方案是……放在一个地方。

    12830

    如何在Ubuntu 14.04上使用Git Hooks部署Rails应用程序

    没有服务器同学可以在这里购买,不过个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后再购买服务器。 您需要在服务器上安装Ruby。...您还需要一个在本地开发机器上git存储库中管理Rails应用程序。如果您没有并希望跟进,我们将提供一个简单示例应用程序。 让我们开始吧!...准备你Rails应用程序 在您开发机器上,很可能是您本地计算机,我们将准备您要部署应用程序。 可选:创建Rails应用程序 理想情况下,您已经拥有了要部署Rails应用程序。...如果是这种情况,您可以跳过此小节,并在跟随时进行适当替换。如果没有,第一步是创建一个新Rails应用程序。 这些命令将在我们主目录中创建一个名为“appname”Rails应用程序。...这指定应用程序生产环境应该在localhost-生产服务器上使用名为“appname_production”PostgreSQL数据库。请注意,数据库用户名和密码设置为环境变量。

    2.5K60

    twitter系统架构分析

    server,利用rails现成模块,降低工作量; (3)数据层(data tier):mysql; 数据层先来吧: twitter核心是(1)用户;(2)消息;(3)用户关系; 围绕这几个核心,...twitter工程师认为,良好体验网站平均响应时间应该在500ms左右,理想时间是200-300ms。 关于cache使用,是twitter架构一大看点,带cache架构清晰如下: ?...面临突发事件时,读者们会搜索相关信息,而不会理会这些信息作者是不是自己follow那些人。...有趣是,varnish通常部署在web server外层,先访问varnish,其中没有先关内容,才访问web server; twitter工程师却将varnish放在apache web server...机器哪里来?租云计算平台公司设备。 当然,设备只需要在洪峰时租用,省钱呀(@58沈剑 疑问:twitter怎么知道什么时候是洪峰?)。

    2.8K70

    rails, django, phoenix,你们错了

    似乎也很优秀 —— 如果让你我从头写一套 web framework,决计赶不上它们水平。 那它们错在哪里?...view 把数据展现出来 有了这些假设,我们能够很快地搭建出应用程序,却付出了高耦合度代价。...经典 MVC 分层设计是一种纵向解耦,数据有序流动,各层只管自己工作,「上帝归上帝,凯撒归凯撒」,不必关心其他层次如何实现。...然而,业务层被这样揉进了一个 web framework 中,是不是哪里不太对劲? rails 们代表 web 层并不是业务全部。如果哪天我们要向第三方提供 API 呢?.../密码相关信息,这信息只有 auth 服务自己知道,连 user service 都没有访问权限。

    1.8K70

    Linux下Unicorn服务器配置

    为 Rack 应用程序设计 HTTP server 2. 是一个利用Unix高级特性开发 3. 为具备低延迟,高带宽连接客户服务 特性: 1....进程管理:Unicorn 会获取和重启因应用程序出错导致死亡任务,不需要自己管理多个进程和端口。Unicorn 可以产生和管理任何数量任务进程。 4. 负载均衡完全由操作系统(Unix)核心完成。...在繁忙任务进程时,请求也不会堆积。 5. 不需要关心应用程序是否是线程安全,workers 运行在特们自己独立地址空间,且一次只为一个客户端服务。 6. 支持所有的 Rack 应用程序。 7....使用 USR1 信号来固定重复打开应用程序所有日志文件。Unicorn 也可以逐步的确定一个请求多行日志放在同一个文件中。 8. nginx 式二进制升级,不丢失连接。...在此目录下添加所有需要工程配置(可放置多个) 例如:project1.conf 内容为 RAILS_ROOT=/work/project1 RAILS_ENV=production 编写unicorn

    10.1K10

    【软件设计原则】CUPID——快乐编码

    Wikipedia 文章中示例是一个生成报告模块,您应该在中将报告内容和格式视为单独关注点,它们应该存在于单独类中,甚至是单独模块中。...有一些工具可以拦截或改变正在运行系统以增加洞察力,但这些工具永远不如为应用程序设计故意仪表。 惯用语¶ 每个人都有自己编码风格。...应用程序框架 Ruby on Rails 在 2000 年代初期通过将其构建到其工具中而普及了这种方法,Rails 广泛采用意味着许多后来框架都复制了这个想法。...下面是生成 Rails 应用程序部分目录布局,重点关注开发人员将花费大部分时间目录(应用程序)。在撰写本文时,完整框架运行到大约 50 个目录,其中包含 60 个文件7。...单一职责 SOLID 原则说视图代码应该与控制器代码分开,并且像 Rails 这样框架将其解释为意味着将它们放在完全不同位置。这增加了认知负荷,降低了凝聚力,并增加了进行产品更改努力。

    48510

    使用Capistrano,Nginx和Puma在Ubuntu 14.04上部署Rails应用程序

    我们首先安装Rails gem,它将允许你Rails应用程序运行,然后我们将安装bundler,它可以读取你应用程序Gemfile并自动安装所有必需gem。...输入以下命令来捆绑您Rails应用程序: $ bundle 捆绑后,运行以下命令配置Capistrano: $ cap install 这将创建: Capfile 在您Rails应用程序根目录中...这会侦听端口80上流量并将请求传递给您Puma套接字,将nginx日志写入应用程序“当前”版本,压缩所有资产并在浏览器中将其缓存到最大到期时间,在公共场合提供HTML页面文件夹作为静态文件,并设置默认最大值...第七步 - 部署Rails应用程序 如果您使用自己Rails应用程序,请提交您刚刚进行更改,并将它们推送到本地计算机远程: $ git add -A $ git commit -m "Set up...IP并查看您Rails应用程序了!

    5K40

    SalesforcePaaS平台Heroku简介

    此前 Heroku 已经把 PostgreSQL 作为一种服务工具提供给开发人员,且已有几年历史,不过现在开发团队希望是,无论自己应用在哪里托管都能使用Heroku数据库服务。...Heroku 宣称自己这项服务久经考验,已成功并安全处理了190亿次客户交易,现在每日处置写事务达4亿次。...据他们的人讲,要求 Salesforce 云平台支持 Rails 呼声很高。 3 Salesforce 能为 Rails 带来商业声誉。 Salesforce 自己云平台已经在跑了很多企业应用。...该平台采用了Ruby on Rails 网络开发框架,客户只需在本地计算机设置一个Ruby Gem(Ruby语言程序包管理器)就可在Heroku云中部署和运行应用程序。...客户可以直接从浏览器中访问和编辑自己代码,也可以添加相关语言插件。Heroku平台在程序开发上可让你得到与本地计算机相同,甚至更好体验。 Heroku是Rails应用最简单部署平台。

    7.2K20
    领券