Archive

Posts Tagged ‘sequel’

Sequelでログをとる方法

11月 1st, 2009
RUBY:
  1. require 'rubygems'
  2. require 'sequel'
  3. require 'logger'
  4. # on memory DB
  5. DB = Sequel.connect('sqlite:///', {:logger => Logger.new('test.log')})
  6. DB.create_table :users do
  7.   primary_key :id
  8.   string :name
  9.   string :profile
  10.   datetime :created_at, :default => Time.now
  11. end

こんな感じで出来て大変便利!

,

sequelでmigration

10月 21st, 2009

普通にschema pluginを使ってモデルを定義していましたが、
リファレンスを見るとschemaはテスト向けの変更の予定が無いDB向けで、
普通はmigrationを使ってね、と書いてありました

This plugin is mostly suited to test code. If there is any chance that your application’s schema could change, you should be using the migration extension instead.

Sequel: The Database Toolkit for Ruby Sequel::Plugins::Schema

RUBY:
  1. # db/migrate/001_create_posts.rb
  2. class CreatePosts <Sequel::Migration
  3.   def up
  4.     create_table :posts do
  5.       primary_key :id
  6.       string :text
  7.     end
  8.   end
  9. end

RUBY:
  1. # rakefile.rb
  2. require 'rubygems'
  3. require 'rake'
  4. require 'sequel'
  5. require 'sequel/extensions/migration'
  6.  
  7. namespace :db do
  8.  desc 'migrate database'
  9.   task :migrate do
  10.     DB = Sequel.connect('sqlite//db/development.sqlite3')
  11.     Sequel::Migrator.apply(DB, './db/migrate')
  12.   end
  13. end

これでコンソールから
rake db:migrate
とすると、001_create_posts.rbの内容が実行されます

参考
[ruby] Sequelでのmigration用Rakefile - よしだメモ
SequelでMigration - みじんこ日記

[sequel][jQuery][sinatra]で今日やったこと

9月 28th, 2009

・xml出力

RUBY:
  1. get '/hoge.xml' do
  2.   content_type 'text/xml', :charset => 'utf-8'
  3.   '<hoge><body>hogehoge</body></hoge>'
  4. end

みたいにします
もちろんerbなどのテンプレートを用いることも可能

・sequelで削除

RUBY:
  1. Posts.filter('id = ?', request[:id]).delete

みたいな感じ
findだとdeleteメソッドがないって怒られた イミフ

・jqueryでAjax

JAVASCRIPT:
  1. var params = {};
  2.   $('input').each(function(){ params[this.name] = this.value });
  3.   ajax = $.post('/post',
  4.         params,
  5.         function(responseText){
  6.           var res = responseText;
  7.           if(res != 'failed'){
  8.             alert('posted!');
  9.           } else {
  10.             alert('failed');
  11.           }
  12.         }
  13.       );

inputのvalueをハッシュ(JSON?)にセットしてpostするとシンプル…かな?

, , ,