Created
July 4, 2024 18:30
-
-
Save Bhacaz/927efc27c5f04d1f25534dc2c8c9a160 to your computer and use it in GitHub Desktop.
Single file Rails
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'bundler/inline' | |
| gemfile do | |
| gem 'activerecord', require: 'active_record' | |
| gem 'sqlite3', '~> 1.4' | |
| end | |
| ActiveRecord::Base.establish_connection adapter: 'sqlite3', database: ':memory:' | |
| ActiveRecord::Base.logger = Logger.new STDOUT | |
| ActiveRecord::Schema.define do | |
| create_table :users | |
| create_table :posts do |t| | |
| t.references :user, null: false, index: true | |
| t.string :title, null: false | |
| end | |
| end | |
| class User < ActiveRecord::Base | |
| has_many :posts | |
| end | |
| class Post < ActiveRecord::Base | |
| belongs_to :user | |
| end | |
| user = User.create! | |
| post = Post.create! user: user, title: "First" | |
| binding.irb |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'bundler/inline' | |
| gemfile do | |
| source 'https://rubygems.org' | |
| gem 'activerecord', require: 'active_record' | |
| gem 'sqlite3', '~> 1.4' | |
| gem 'rspec' | |
| end | |
| ActiveRecord::Base.establish_connection adapter: 'sqlite3', database: ':memory:' | |
| ActiveRecord::Base.logger = Logger.new STDOUT | |
| ActiveRecord::Schema.define do | |
| create_table :users | |
| create_table :posts do |t| | |
| t.references :user, null: false, index: true | |
| t.string :title, null: false | |
| end | |
| end | |
| class User < ActiveRecord::Base | |
| has_many :posts | |
| end | |
| class Post < ActiveRecord::Base | |
| belongs_to :user | |
| end | |
| require 'rspec/autorun' | |
| RSpec.describe do | |
| it "count" do | |
| User.create! | |
| expect(User.count).to eq(1) | |
| end | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # rackup rails_app.ru | |
| require "bundler/inline" | |
| gemfile do | |
| gem "rack", "~> 2.0" | |
| gem "rails", "~> 7.1" | |
| gem "sqlite3", '~> 1.4' | |
| end | |
| require "rails/all" | |
| database = "development.sqlite3" | |
| ENV["DATABASE_URL"] = "sqlite3:#{database}" | |
| ActiveRecord::Base.establish_connection adapter: 'sqlite3', database: database | |
| ActiveRecord::Base.logger = Logger.new(STDOUT) | |
| ActiveRecord::Schema.define do | |
| create_table :posts, force: true do |t| | |
| t.text :content | |
| end | |
| create_table :comments, force: true do |t| | |
| t.integer :post_id | |
| t.text :content | |
| end | |
| end | |
| class App < Rails::Application | |
| config.root = __dir__ | |
| config.load_defaults 7.1 | |
| config.consider_all_requests_local = true | |
| config.secret_key_base = "i_am_a_secret" | |
| config.log_level = :debug | |
| config.logger = Logger.new(STDOUT) | |
| config.eager_load = false | |
| routes.append do | |
| root to: "posts#index" | |
| end | |
| end | |
| class Post < ActiveRecord::Base | |
| has_many :comments | |
| def as_json(options = {}) | |
| super.tap do |json| | |
| json[:comments] = comments | |
| end | |
| end | |
| end | |
| class Comment < ActiveRecord::Base | |
| belongs_to :post | |
| end | |
| post = Post.create!(content: "Hello, world!") | |
| post.comments.create!(content: "First comment") | |
| class PostsController < ActionController::Base | |
| def index | |
| render json: Post.all | |
| end | |
| end | |
| App.initialize! | |
| run App |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment