CRUD the QM Way

A QuarterMaster project (result).

Controller

%controllers/crud.r

REBOL [
Title: "QM CRUD Template"
Type: 'controller
Default: "list"
]

event "prepare" does [
db: open db::a-table
]

action "list" does [
entries: copy db
]

action "show" [id: integer!] does [
entry: select db id
]

action "destroy" [id: integer!] does [
entry: select db id
entry/destroy
redirect-to %/crud/list
]

action "new" does [
entry: select db 'new
]

action "create" does [
entry: select db 'new
either entry/inject get-request 'entry [
entry/store
flash notice "Record Storage Successful!"
redirect-to %/crud
][
render %/crud/new
]
]

action "edit" [id: integer!] does [
entry: select db id
]

action "update" [id: integer!] does [
entry: select db id
either entry/inject get-request 'entry [
entry/store
flash notice "Record was successfully updated"
redirect-to join %/crud/ id
][
render %/crud/edit
]
]