gpt4 book ai didi

ruby-on-rails - 使用多个区域管理 Ruby On Rails

转载 作者:太空狗 更新时间:2023-10-29 14:23:46 31 4
gpt4 key购买 nike

我一直在考虑将我的 SAAS 应用推向国际市场,只是想知道其他人如何处理与代码库相关的此类情况。

显然,有些事情需要更新,例如验证(验证不同国家/地区的手机号码)以及帐单更改。

我预见到该平台的运行方式会有很多差异,但理想情况下我不愿意在不同的存储库中管理多个版本的 Rails 源代码。 (因此,如果我修复了美国版本中的错误,我还必须切换到法国版本并在那里应用它)。

如果我将所有内容都保存在一个存储库中,就会出现烦人的事情;

  1. Managing multiple robots.txt and schedule.rb files (for cron)
  2. Different website promotions and advertising (though I guess this can be DB based)
  3. Turning off features and hyperlinks per region. (US has this feature but France has that feature etc)
  4. Source code might get messy with tailored partials (_some_partial.en-US.html.erb and _some_parth.en-FR.html.erb) etc
  5. Creating code and features will require developers to be mindful of the consequences across multiple regions. (If I build FEATURE-A for the US platform, I'll have to build code to make sure this is turned off when viewed on the France platform etc).

目前的解决方案;

  1. Same codebase for all regions; but use ugly if statements for logic (If US? elsif France? end)
  2. Separate repositories for each region
  3. Separate github branches for each region and I work off master and merge that into production_france etc (which has france related commits also)
  4. Rails engines??

Taskrabbit(他们刚刚在英国推出)或 yelp 这样的网站如何跨地区执行此操作?

最佳答案

我不确定对此有正确或错误的答案,但这里有一个意见。

  1. 使您的广告网站成为一个完全独立的代码库。在我参与的项目中,无需部署整个产品生态系统的新版本即可实现营销变更是一项真正的优势。将它们分开,因为分离关注点很容易。您真的不想针对营销网站上的简单内容更改运行整个测试/部署过程。

  2. 我建议查看现有的 Rails 国际化插件/解决方案,并确定这些方法是否与您的产品相关。大多数解决此问题的方法似乎是使用自定义字符串/设置等为每个区域创建 YML 文件,然后让 i18n 类从 YML 文件部分提取适当的内容。

  3. 我假设每个区域都可以由每个用户决定?我过去曾在用户模型中设置用户区域时这样做过。这可以包括时区、语言等。然后我可以单独更改每个用户的体验。您可以通过用户模型确定所有 i18n 选项的范围,因此当您需要为每个用户获取某些内容时,它会通过用户区域进行过滤,然后扩展到 i18n/YML 文件设置。

  4. 不同地区真的需要不同的功能吗?这是似乎使事情复杂化的一个因素。如果您可以重新构建代码/产品以使所有功能都相同,则可能会使事情变得更简单。

关于ruby-on-rails - 使用多个区域管理 Ruby On Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137120/

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