gpt4 book ai didi

ruby-on-rails - 如何正确地将 .rb 文件中的代码包含到 Rails 架构中?

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:17 27 4
gpt4 key购买 nike

我目前正在用 Ruby 编写一个应用程序,它对 Soundcloud 的 API 进行一些简单的外部 API 调用。

我在单个 .rb 文件中开发了一堆代码,并想将其放入 Rails 架构中。此 Ruby 文件具有以下类:

class SoundcloudUser
class SoundcloudQuery
class SoundcloudFollowers

目前我知道我可以将这些类放入单独的 .rb 文件中,然后将它们放入/models/文件夹中,这样我就可以从我的 Rails 应用程序的其他地方调用这些类(使用 require/include ).

我的问题很简单,这是解决这个问题的正确方法吗?我熟悉 rails,但我对将 Ruby 开发的项目转换为 rails 格式很陌生。我尝试在 Ruby 风格指南中搜索这方面的最佳实践,但我没有真正找到任何东西。

旁注 - 我还想创建另一个充当“服务”的类?其中 in 检查我的本地数据库是否数据库中已存在条目,如果不存在,则它将查询新数据。我在这里的附带问题是类似的 - 这个“服务”的 .rb 文件会在哪里?

我希望我已经足够清楚地解释了我的问题,如果没有,我很乐意添加一些说明。感谢您的宝贵时间!

最佳答案

如果在 Rails 中,您可以将它们放在 lib/ 或主 app 目录中的某个位置。例如,您可以创建 app/services 并将它们放在那里,当您重新启动 Rails 服务器时,您应该能够调用 SoundcloudUser(假设您将它们命名为 app/services/soundcloud_user.rb.

我总是为此查看 Gitlab 源代码。这是一个巨大的 Rails 应用程序,但看看这个文件:https://github.com/gitlabhq/gitlabhq/blob/master/app/services/gravatar_service.rb .因为它位于 app/services(实际上是任何名称)中,所以可以从 Rails 中的任何地方调用 GravatarService。如果你想有一些命名空间,你必须把它放在 app/services/soundcloud/user.rblib/soundcloud/user.rb 并命名类 Soundcloud::User.

对于充当服务的类,它似乎编排了“检查(歌曲?)是否存在,否则就抓取”的逻辑。有些人把它放在模型类中,我可能会把它放在服务中Gitlab 源代码类。希望我有所帮助。

关于ruby-on-rails - 如何正确地将 .rb 文件中的代码包含到 Rails 架构中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49360434/

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