Assign a name to every tables arrangement #83

Merged
bustikiller merged 3 commits from arrangement-names into main 2024-11-03 11:04:08 +00:00
6 changed files with 23 additions and 3 deletions

View File

@ -15,6 +15,7 @@ gem 'stimulus-rails'
gem 'turbo-rails' gem 'turbo-rails'
gem 'tzinfo-data', platforms: %i[windows jruby] gem 'tzinfo-data', platforms: %i[windows jruby]
gem 'faker'
gem 'jsonapi-rails' gem 'jsonapi-rails'
gem 'rack-cors' gem 'rack-cors'
gem 'react-rails' gem 'react-rails'
@ -23,7 +24,6 @@ gem 'rubytree'
group :development, :test do group :development, :test do
gem 'debug', platforms: %i[mri windows] gem 'debug', platforms: %i[mri windows]
gem 'factory_bot_rails' gem 'factory_bot_rails'
gem 'faker'
gem 'pry' gem 'pry'
gem 'rspec-rails', '~> 7.0.0' gem 'rspec-rails', '~> 7.0.0'
end end

View File

@ -2,7 +2,7 @@
class TablesArrangementsController < ApplicationController class TablesArrangementsController < ApplicationController
def index def index
render json: TablesArrangement.all.order(discomfort: :asc).limit(3).as_json(only: %i[id discomfort]) render json: TablesArrangement.all.order(discomfort: :asc).limit(3).as_json(only: %i[id name discomfort])
end end
def show def show

View File

@ -3,4 +3,12 @@
class TablesArrangement < ApplicationRecord class TablesArrangement < ApplicationRecord
has_many :seats has_many :seats
has_many :guests, through: :seats has_many :guests, through: :seats
before_create :assign_name
private
def assign_name
self.name = "#{Faker::Adjective.positive} #{Faker::Creature::Animal.name}".capitalize
end
end end

View File

@ -0,0 +1,7 @@
# Copyright (C) 2024 Manuel Bustillo
class AddNameToTablesArrangements < ActiveRecord::Migration[7.2]
def change
add_column :tables_arrangements, :name, :string, null: false
end
end

1
db/schema.rb generated
View File

@ -64,6 +64,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_03_093955) do
t.integer "discomfort" t.integer "discomfort"
t.datetime "created_at", null: false t.datetime "created_at", null: false
t.datetime "updated_at", null: false t.datetime "updated_at", null: false
t.string "name", null: false
end end
add_foreign_key "groups", "groups", column: "parent_id" add_foreign_key "groups", "groups", column: "parent_id"

View File

@ -3,5 +3,9 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe TablesArrangement, type: :model do RSpec.describe TablesArrangement, type: :model do
pending "add some examples to (or delete) #{__FILE__}" describe 'callbacks' do
it 'assigns a name before creation' do
expect(described_class.create!.name).to be_present
end
end
end end