【问题标题】:How do i enhance rails gem to serve endpoints我如何增强 Rails gem 以服务于端点
【发布时间】:2018-09-30 16:54:57
【问题描述】:

我是 Rails 新手,我正在阅读文档并试图弄清楚如何增强现有的 gem 以便我可以添加一些可以从客户端应用程序(角度应用程序、vue)中使用的端点应用程序,反应应用程序)。

例子:

  1. 我有一个名为 book_scheduler 的现有 gem。看看这个,它没有appconfig 文件夹结构,而是binlib

  2. 现在我想增强 gem 使其具有两个端点,以便客户端可以使用 fetch 调用 book/countbook/return

我怎样才能做到这一点?我可以以某种方式增强 gem 以拥有 rails 引擎并定义路线吗?非常感谢任何建议或指导。

【问题讨论】:

  • 是的,引擎是在 gem 中处理这个问题的最佳方式,暴露一些可以安装的东西,然后从那里拿走它。作为示例,设计源代码非常出色。还有edgeguides.rubyonrails.org/engines.html
  • 如何克隆现有的 gem 并查看一些关于在 ruby​​ 中构建 gem 的教程,然后根据您的需要增强该 gem?
  • @Austio 和 @Nezir 谢谢,所以 gem 将/必须转换为引擎。引擎不能成为现有 gem 的一部分?如果我们确实转换现有 gem,那么它是否需要从 catch 重写,因为rails plugin new blorgh --mountable 是创建新的。

标签: ruby-on-rails ruby rubygems rails-engines


【解决方案1】:

如果您想在许多 Rails 应用程序中使用book_scheduler,您可以将其设为Engine 它将帮助您创建许多具有相同端点的 Rails 应用程序

但是,如果您想构建一个单一的 Rails API(由多个客户端应用程序使用),您应该执行以下操作:

  • 使用 bundler 将 gem 包含在项目中
  • 在 routes.rb 中定义你的 endoints
  • 创建一个基于现有 gem 实现 endoints 的控制器
  • 根据需要创建视图。或者干脆用 JSON 渲染

【讨论】:

    猜你喜欢
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多