gpt4 book ai didi

ruby-on-rails - 如何创建内联/最小的 Rails 应用程序?

转载 作者:行者123 更新时间:2023-12-03 14:23:56 25 4
gpt4 key购买 nike

例如,可能是 use ActiveRecord inline in a Ruby script .我非常喜欢用它来报告错误、测试功能和分享要点。

我想知道是否可以为 Rails 网络服务做同样的事情? (我主要对让 Controller 层工作感兴趣,其余的应该很容易按需添加。)大致如下:

begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
end

gemfile(true) do
source "https://rubygems.org"

gem 'rails', '~> 6.0.0'
end

require 'rails/commands'
APP_PATH = File.expand_path('config/application', __dir__)
Rails::Command.invoke('server')

当玩弄这个时,似乎确实需要一个外部入口点( APP_PATH )。因此,或者,一种可接受的方法是将所有配置塞入单个入口点。到目前为止,我无法让它发挥作用。

The Rails Initialization Process是迄今为止我找到的最好的资源。

我制作了一个最小的 Rails 应用程序,如下所示:
rails new min-rails --skip-keeps --skip-action-mailer --skip-action-mailbox --skip-action-text --skip-active-record --skip-active-storage --skip-puma --skip-action-cable --skip-sprockets --skip-spring --skip-listen --skip-javascript --skip-turbolinks --skip-test --skip-system-test --skip-bootsnap --api
cd min-rails
rm -rf app/jobs app/models config/initializers config/locales lib log public tmp vendor config/environments/test.rb config/environments/production.rb config/credentials.yml.enc config/master.key bin/rake bin/setup bin/bundle

最佳答案

我最终得到了 following script :
inline-rails.rb

begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
end

gemfile(true) do
source "https://rubygems.org"

gem 'rails', '~> 6.0.0'
end

require "action_controller/railtie"

class App < Rails::Application
routes.append do
get "/hello/world" => "hello#world"
end

config.consider_all_requests_local = true # display errors
end

class HelloController < ActionController::API
def world
render json: {hello: :world}
end
end

App.initialize!

Rack::Server.new(app: App, Port: 3000).start

运行它:
ruby inline-rails.rb

关于ruby-on-rails - 如何创建内联/最小的 Rails 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58817733/

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