Ramaze Simple Tutorial (with Sequel)
ํํ๋ค ๋ง์ด ์ด์ฉ๋๋ Rails ๋ฅผ ์์ฐ๊ณ Ramaze + Sequel ์กฐํฉ์ ์๋ํด ๋ณธ ์ด์ ๋ ์ค์น๋๋ ๋ชจ๋์ด ์ ๋ง ์ ๊ธฐ ๋๋ฌธ์ด๋ค. ๋๋ฌด ๋ง์ ์์กด์ฑ์ ๊ฐ์ง๊ฒ ๋๋ฉด, ์๊ฐ์ด ์ง๋ ์๋ก ๊ด๋ฆฌํ๋๋ฐ ๋ง์ ๋ฌธ์ ๋ฅผ ์ฝ์ผํจ๋ค. ์ด ๋๋ฌธ์, ์๋๋ python/Django ๋ฅผ ์ฌ์ฉํ์๋๋ฐ, python ๋์ ruby ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ด์ ๋์ฒดํ ๋งํ ์นํ๋ ์์ํฌ๋ฅผ ์ฐพ๊ณ ์์๋ค. ๊ทธ๋ฌ๋ค๊ฐ, Ramaze + Sequal ์ด ์ด๊ฐ๋จ์ผ๋ก ์ค์น๋๋ ๊ฒ์ ํ์ธํ๊ณ , ๊ด๋ จ ๋ฌธ์๋ฅผ ์ฐพ์๋ณด๊ณ ํ ์คํธํ์ง๋ง Rails ๋ Django ์ฒ๋ผ ์ถฉ๋ถํ ๋ฌธ์๋ฅผ ์ ๊ณตํ์ง ์๋๋ผ. ์ธ๋งํ Tutorial ๋ ์๊ณ ํด์, ์ด๊ฐ๋จ์ผ๋ก Tutorial ์ ๋ง๋ค์ด๋ณด์๋ค.
๊ด๋ จ ๋ชจ๋ ์ค์น
$ apt-get install libsqlite3-dev sqlite3 $ gem install ramaze sequel thin sqlite3
ํ๋ก์ ํธ ์์ฑ
$ mkdir -p /opt/project/ramaze $ cd /opt/project/ramaze $ ramaze create web
๊ธฐ๋ณธ ์น์๋ฒ ๋ณ๊ฒฝ -> start.rb ์์ :webrick ์ :thin ์ผ๋ก ์์
์น์๋ฒ ์์ ํ ์คํธ
$ ramaze start -s thin or $ ruby start.rb
db ์์ฑ
$ cd /opt/project/ramaze/web $ mkdir -p db/migration $ vi db/migration/001_AdminMigration.rb
db/gigration/001_AdminMigration.rb
# Run: # sequel -m db/migration -M 1 sqlite://db/web.db class CreateAdminsTable < Sequel::Migration def up create_table(:admins) do primary_key :id String :login, :unique => true String :password String :name String :email String :mobile_phone String :level end end def down drop_table(:admins) end end
DB Migration
$ sequel -m db/migration -M 1 sqlite://db/web.db
app.rb ์ ๋ค์ ์ถ๊ฐ
# coding : utf-8 require 'sequel' # Open the accounts database DB = Sequel.connect('sqlite://db/web.db') # Initialize controllers and models require __DIR__('model/init') require __DIR__('controller/init') # ์๋๋ ์ฒ์ ์คํํ ๋ ํ๋ฒ๋ง ์ ์ฉํ๊ณ ์ฃผ์์ผ๋ก ๋ง์์ค๋ค. # Admin.create(:login => 'hong', :password => 'hong1234', :name => 'ํ๊ธธ๋', :email => '[email protected]', :mobile_phone => '010-5555-5555', :level => '00') # Admin.create(:login => 'jang', :password => 'jang1234', :name => '์ฅ์์ค', :email => '[email protected]', :mobile_phone => '010-6666-6666', :level => '01')
model/init.rb ์ ๋ค์ ์ถ๊ฐ
require __DIR__('admin')
model/admin.rb ์์ฑ
require 'sequel' class Admin < Sequel::Model end
controller/init.rb ์ ๋ค์์ ์ถ๊ฐ
require __DIR__('admin')
controller/admin.rb ์์ฑ
class AdminController < Controller map '/admin' def index 'Admin Test' end end
ํ๋ก์ ํธ๋ฅผ ์คํํ๊ณ ๋ธ๋ผ์ฐ์ ์์ http://localhost:7000/admin ์ ์ ๊ทผํด๋ณธ๋ค.
์ด์ , controller/admin.rb ์ index ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ๋ค.
def index @admins = Admin.all end
view ๋๋ ํ ๋ฆฌ ์์ฑ
$ cd /opt/project/itsm_ramaze/web/view $ mkdir admin
view/admin/index.xhtml ์์ฑ
<h1> Admin Test Page </h1> <?r @admins.each do |admin| ?> #{admin.login} #{admin.name} #{admin.email} #{admin.mobile_phone} #{admin.level} <br/> <?r end ?>
ํ๋ก์ ํธ๋ฅผ ์คํํ๊ณ ๋ธ๋ผ์ฐ์ ์์ http://localhost:7000/admin ์ ์ ๊ทผํด์ ๋ฐ์ดํฐ ๋ชฉ๋ก์ด ๋จ๋ฉด ์ ์์ด๋ค.










