entity scaffold
This commit is contained in:
parent
c46ecb73e0
commit
26ea76c8e9
58
app/controllers/entities_controller.rb
Normal file
58
app/controllers/entities_controller.rb
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
class EntitiesController < ApplicationController
|
||||||
|
before_action :set_entity, only: %i[ show edit update destroy ]
|
||||||
|
|
||||||
|
# GET /entities
|
||||||
|
def index
|
||||||
|
@entities = Entity.all
|
||||||
|
end
|
||||||
|
|
||||||
|
# GET /entities/1
|
||||||
|
def show
|
||||||
|
end
|
||||||
|
|
||||||
|
# GET /entities/new
|
||||||
|
def new
|
||||||
|
@entity = Entity.new
|
||||||
|
end
|
||||||
|
|
||||||
|
# GET /entities/1/edit
|
||||||
|
def edit
|
||||||
|
end
|
||||||
|
|
||||||
|
# POST /entities
|
||||||
|
def create
|
||||||
|
@entity = Entity.new(entity_params)
|
||||||
|
|
||||||
|
if @entity.save
|
||||||
|
redirect_to @entity, notice: "Entity was successfully created."
|
||||||
|
else
|
||||||
|
render :new, status: :unprocessable_entity
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# PATCH/PUT /entities/1
|
||||||
|
def update
|
||||||
|
if @entity.update(entity_params)
|
||||||
|
redirect_to @entity, notice: "Entity was successfully updated."
|
||||||
|
else
|
||||||
|
render :edit, status: :unprocessable_entity
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# DELETE /entities/1
|
||||||
|
def destroy
|
||||||
|
@entity.destroy
|
||||||
|
redirect_to entities_url, notice: "Entity was successfully destroyed."
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
# Use callbacks to share common setup or constraints between actions.
|
||||||
|
def set_entity
|
||||||
|
@entity = Entity.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
|
# Only allow a list of trusted parameters through.
|
||||||
|
def entity_params
|
||||||
|
params.require(:entity).permit(:name, :ha_id, :type , :member_id)
|
||||||
|
end
|
||||||
|
end
|
2
app/helpers/entities_helper.rb
Normal file
2
app/helpers/entities_helper.rb
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
module EntitiesHelper
|
||||||
|
end
|
7
app/models/entity.rb
Normal file
7
app/models/entity.rb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
class Entity < ApplicationRecord
|
||||||
|
validate :name , presence: true
|
||||||
|
validate :ha_id , presence: true
|
||||||
|
validate :type , presence: true
|
||||||
|
validate :member_id , presence: true
|
||||||
|
|
||||||
|
end
|
19
app/views/entities/_form.html.haml
Normal file
19
app/views/entities/_form.html.haml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
= form_for @entity do |f|
|
||||||
|
- if @entity.errors.any?
|
||||||
|
#error_explanation
|
||||||
|
%h2= "#{pluralize(@entity.errors.count, "error")} prohibited this entity from being saved:"
|
||||||
|
%ul
|
||||||
|
- @entity.errors.full_messages.each do |message|
|
||||||
|
%li= message
|
||||||
|
|
||||||
|
.field
|
||||||
|
= f.label :name
|
||||||
|
= f.text_field :name
|
||||||
|
.field
|
||||||
|
= f.label :ha_id
|
||||||
|
= f.text_field :ha_id
|
||||||
|
.field
|
||||||
|
= f.label :type
|
||||||
|
= f.text_field :type
|
||||||
|
.actions
|
||||||
|
= f.submit 'Save'
|
7
app/views/entities/edit.html.haml
Normal file
7
app/views/entities/edit.html.haml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
%h1 Editing entity
|
||||||
|
|
||||||
|
= render 'form'
|
||||||
|
|
||||||
|
= link_to 'Show', @entity
|
||||||
|
\|
|
||||||
|
= link_to 'Back', entities_path
|
25
app/views/entities/index.html.haml
Normal file
25
app/views/entities/index.html.haml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
%h1 Listing entities
|
||||||
|
|
||||||
|
%table
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th Name
|
||||||
|
%th Ha
|
||||||
|
%th Type
|
||||||
|
%th
|
||||||
|
%th
|
||||||
|
%th
|
||||||
|
|
||||||
|
%tbody
|
||||||
|
- @entities.each do |entity|
|
||||||
|
%tr
|
||||||
|
%td= entity.name
|
||||||
|
%td= entity.ha_id
|
||||||
|
%td= entity.type
|
||||||
|
%td= link_to 'Show', entity
|
||||||
|
%td= link_to 'Edit', edit_entity_path(entity)
|
||||||
|
%td= link_to 'Destroy', entity, method: :delete, data: { confirm: 'Are you sure?' }
|
||||||
|
|
||||||
|
%br
|
||||||
|
|
||||||
|
= link_to 'New Entity', new_entity_path
|
5
app/views/entities/new.html.haml
Normal file
5
app/views/entities/new.html.haml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
%h1 New entity
|
||||||
|
|
||||||
|
= render 'form'
|
||||||
|
|
||||||
|
= link_to 'Back', entities_path
|
15
app/views/entities/show.html.haml
Normal file
15
app/views/entities/show.html.haml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
%p#notice= notice
|
||||||
|
|
||||||
|
%p
|
||||||
|
%b Name:
|
||||||
|
= @entity.name
|
||||||
|
%p
|
||||||
|
%b Ha:
|
||||||
|
= @entity.ha_id
|
||||||
|
%p
|
||||||
|
%b Type:
|
||||||
|
= @entity.type
|
||||||
|
|
||||||
|
= link_to 'Edit', edit_entity_path(@entity)
|
||||||
|
\|
|
||||||
|
= link_to 'Back', entities_path
|
@ -1,4 +1,5 @@
|
|||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
|
resources :entities
|
||||||
|
|
||||||
devise_for :members
|
devise_for :members
|
||||||
|
|
||||||
|
11
db/migrate/20230113170732_create_entities.rb
Normal file
11
db/migrate/20230113170732_create_entities.rb
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
class CreateEntities < ActiveRecord::Migration[7.0]
|
||||||
|
def change
|
||||||
|
create_table :entities do |t|
|
||||||
|
t.string :name
|
||||||
|
t.string :ha_id
|
||||||
|
t.string :type
|
||||||
|
t.references :member
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
12
db/schema.rb
generated
12
db/schema.rb
generated
@ -10,10 +10,20 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema[7.0].define(version: 2022_12_31_154221) do
|
ActiveRecord::Schema[7.0].define(version: 2023_01_13_170732) do
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
|
||||||
|
create_table "entities", force: :cascade do |t|
|
||||||
|
t.string "name"
|
||||||
|
t.string "ha_id"
|
||||||
|
t.string "type"
|
||||||
|
t.bigint "member_id"
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
|
t.index ["member_id"], name: "index_entities_on_member_id"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "friendly_id_slugs", force: :cascade do |t|
|
create_table "friendly_id_slugs", force: :cascade do |t|
|
||||||
t.string "slug", null: false
|
t.string "slug", null: false
|
||||||
t.integer "sluggable_id", null: false
|
t.integer "sluggable_id", null: false
|
||||||
|
48
test/controllers/entities_controller_test.rb
Normal file
48
test/controllers/entities_controller_test.rb
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
require "test_helper"
|
||||||
|
|
||||||
|
class EntitiesControllerTest < ActionDispatch::IntegrationTest
|
||||||
|
setup do
|
||||||
|
@entity = entities(:one)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should get index" do
|
||||||
|
get entities_url
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should get new" do
|
||||||
|
get new_entity_url
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should create entity" do
|
||||||
|
assert_difference("Entity.count") do
|
||||||
|
post entities_url, params: { entity: { ha_id: @entity.ha_id, name: @entity.name, type: @entity.type } }
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_redirected_to entity_url(Entity.last)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should show entity" do
|
||||||
|
get entity_url(@entity)
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should get edit" do
|
||||||
|
get edit_entity_url(@entity)
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should update entity" do
|
||||||
|
patch entity_url(@entity), params: { entity: { ha_id: @entity.ha_id, name: @entity.name, type: @entity.type } }
|
||||||
|
assert_redirected_to entity_url(@entity)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should destroy entity" do
|
||||||
|
assert_difference("Entity.count", -1) do
|
||||||
|
delete entity_url(@entity)
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_redirected_to entities_url
|
||||||
|
end
|
||||||
|
end
|
11
test/fixtures/entities.yml
vendored
Normal file
11
test/fixtures/entities.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||||
|
|
||||||
|
one:
|
||||||
|
name: MyString
|
||||||
|
ha_id: MyString
|
||||||
|
type:
|
||||||
|
|
||||||
|
two:
|
||||||
|
name: MyString
|
||||||
|
ha_id: MyString
|
||||||
|
type:
|
7
test/models/entity_test.rb
Normal file
7
test/models/entity_test.rb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
require "test_helper"
|
||||||
|
|
||||||
|
class EntityTest < ActiveSupport::TestCase
|
||||||
|
# test "the truth" do
|
||||||
|
# assert true
|
||||||
|
# end
|
||||||
|
end
|
45
test/system/entities_test.rb
Normal file
45
test/system/entities_test.rb
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
require "application_system_test_case"
|
||||||
|
|
||||||
|
class EntitiesTest < ApplicationSystemTestCase
|
||||||
|
setup do
|
||||||
|
@entity = entities(:one)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "visiting the index" do
|
||||||
|
visit entities_url
|
||||||
|
assert_selector "h1", text: "Entities"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should create entity" do
|
||||||
|
visit entities_url
|
||||||
|
click_on "New entity"
|
||||||
|
|
||||||
|
fill_in "Ha", with: @entity.ha_id
|
||||||
|
fill_in "Name", with: @entity.name
|
||||||
|
fill_in "Type", with: @entity.type
|
||||||
|
click_on "Create Entity"
|
||||||
|
|
||||||
|
assert_text "Entity was successfully created"
|
||||||
|
click_on "Back"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should update Entity" do
|
||||||
|
visit entity_url(@entity)
|
||||||
|
click_on "Edit this entity", match: :first
|
||||||
|
|
||||||
|
fill_in "Ha", with: @entity.ha_id
|
||||||
|
fill_in "Name", with: @entity.name
|
||||||
|
fill_in "Type", with: @entity.type
|
||||||
|
click_on "Update Entity"
|
||||||
|
|
||||||
|
assert_text "Entity was successfully updated"
|
||||||
|
click_on "Back"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should destroy Entity" do
|
||||||
|
visit entity_url(@entity)
|
||||||
|
click_on "Destroy this entity", match: :first
|
||||||
|
|
||||||
|
assert_text "Entity was successfully destroyed"
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user