gpt4 book ai didi

ruby-on-rails - 如何在 Rails 5 API 中呈现文件?

转载 作者:数据小太阳 更新时间:2023-10-29 06:53:10 25 4
gpt4 key购买 nike

我有一个用 React 和 Ruby on Rails 后端(API 模式)编写的单页应用程序。 Rails 也提供静态文件。我将 Rails 路由器指向 public/index.html,因此我的 SPA 可以使用 react-router 管理他自己的路由。这是建立直接链接和刷新工作的常见做法。

routes.rb

match '*all', to: 'application#index', via: [:get]

application_controller.rb

class ApplicationController < ActionController::API
def index
render file: 'public/index.html'
end
end

问题是这在 API 模式下不起作用。这只是一个空洞的回应。如果我将父类更改为 ActionController::Base,一切都会按预期进行。但是我不想继承full class的臃肿,我需要slim API版本。

我尝试添加模块,如 ActionController::Renderers::AllAbstractController::Rendering 但没有成功。

最佳答案

If I change the parent class to ActionController::Base everything works as expected. But I don't want to inherit the bloat of full class, I need slim API version.

是的,如果您从 ApplicationController 提供索引,更改其基类会影响所有其他 Controller 。这个不好。但是,如果您有专门的 Controller 来为该页面提供服务呢?

class StaticPagesController < ActionController::Base
def index
render file: 'public/index.html'
end
end

这样一来,您就只有一个“臃肿”的 Controller ,而其他 Controller 则保持 slim 和快速。

关于ruby-on-rails - 如何在 Rails 5 API 中呈现文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43911928/

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