Hatena::ブログ(Diary)

Kir Royal

2009-03-30

Ruby on Rails からデータベース(PostgreSQL)に接続し,データを取得する.04

| 15:34

  • 07 Scaffold生成
    • 気をつけましょう
      • rails1.2系

script/generate scaffold <モデル名> <コントローラ名>

        • つまり,以下のようになります.

script/generate scaffold Article Article

      • rails2系

script/generate scaffold <モデル名> <カラム名:型> <カラム名2:型> …

        • つまり,以下のようになります.

script/generate scaffold Article Id:integer Number:integer Title:string

rake db:migrate

script/server

とりあえず,これで雛形は終了です.

2009-03-27

Ruby on Rails からデータベース(PostgreSQL)に接続し,データを取得する.03

| 21:15

  • 05 $KCODE の指定

% vim config/environment.rb

    • 以下を先頭行に追加する

$KCODE = "UTF8"

  • 06 Content-Type の設定

% vim app/controllers/application.rb

    • 以下のように変更する.

class ApplicationController < ActionController::Base

before_filter :set_charset

private

def set_charset

headers['Content-Type'] = 'text/html; charset=UTF-8'

end

end

続きます

Ruby on Rails からデータベース(PostgreSQL)に接続し,データを取得する.02

| 19:14

  • 02 データベースのテーブルを設定する.
    • ステップ08を実行するならばしなくてよい

CREATE TABLE articles(

id SERIAL NOT NULL ,

number INT NOT NULL,

title VARCHAR(200) NOT NULL,

PRIMARY KEY (id) ) ;

  • 03 railsコマンドの実行

%rails /(railsを置くDir)/hoge02

% cd /(railsを置くDir)/hoge02

    • これ以降は,基本的にこの場所にいること

% vim config/database.yml

    • 前に書いたとおり,Fedora8では,以下に,[config/database.yml]のテンプレートが存在する.これを編集して,置き換えればOK

/usr/lib/ruby/gems/1.8/gems/rails-2.1.1/configs/databases/

    • 書き換え例

# PostgreSQL. Versions 7.4 and 8.x are supported.

#

# Install the ruby-postgres driver:

# gem install ruby-postgres

# On Mac OS X:

# gem install ruby-postgres -- --include=/usr/local/pgsql

# On Windows:

# gem install ruby-postgres

# Choose the win32 build.

# Install PostgreSQL and put its /bin directory on your path.

development:

adapter: postgresql

encoding: unicode

database: hoge02_development

username: hoge02

password: hoge02

host: localhost

# Connect on a TCP socket. Omitted by default since the client uses a

# domain socket that doesn't need configuration. Windows does not have

# domain sockets, so uncomment these lines.

#host: localhost

#port: 5432

# Schema search path. The server defaults to $user,public

#schema_search_path: myapp,sharedapp,public

# Minimum log levels, in increasing order:

# debug5, debug4, debug3, debug2, debug1,

# log, notice, warning, error, fatal, and panic

# The server defaults to notice.

#min_messages: warning

# Warning: The database defined as "test" will be erased and

# re-generated from your development database when you run "rake".

# Do not set this db to the same as development or production.

test:

adapter: postgresql

encoding: unicode

database: hoge02_test

username: hoge02

password: hoge02

host: localhost

production:

adapter: postgresql

encoding: unicode

database: hoge02_production

username: hoge02

password: hoge02

host: localhost

rake db:create

続きます.

Ruby on Rails からデータベース(PostgreSQL)に接続し,データを取得する.01

| 18:53

基本的に,ここを見ながら作っていきます.

  • DB NAME : [hoge02_development]/[hoge02_test]/[hoge02_production]
  • TABLE NAME : [articles]
  • Owner : [hoge02]

% su -

# su - postgres

bash-3.2$ psql hoge02_development

    • 01.1 データベースが存在していないとき
    • 手動で生成
    • 自動で行うときは,01を省略し,02から初め,04.01の作業を行うこと

bash-3.2$ createdb -O hoge02 -E UTF-8 hoge02_development

bash-3.2$ createdb -O hoge02 -E UTF-8 hoge02_test

bash-3.2$ createdb -O hoge02 -E UTF-8 hoge02_production

bash-3.2$ psql template1

      • 変更したいユーザのIDを取得する.

template1=# SELECT usesysid from pg_user where usename='hoge02';

usesysid

----------

16499

(1 row)

template1=# update pg_database set datdba = 16499 where datname='hoge02_development';

UPDATE 1

    • 01.3 テーブルの所有者が異なるとき

hoge02_development=# ALTER TABLE articles OWNER TO hoge02;

ALTER TABLE


続きます.

PostgreSQLにおけるユーザの追加・削除

| 16:44

まず,postgresユーザになること

  • ユーザの追加
    • 三つの質問には,適宜答えること

bash-3.2$ createuser hoge

Shall the new role be a superuser? (y/n) y

Shall the new role be allowed to create databases? (y/n) y

Shall the new role be allowed to create more new roles? (y/n) y

bash-3.2$ psql template1

template1=# ALTER USER hoge password 'hogehoge';

ALTER ROLE

template1=# \q

  • ユーザの削除

bash-3.2$ dropuser hoge

2009-03-25

config/database.ymlのテンプレート群

| 21:09

Fedora8では,以下に,[config/database.yml]のテンプレートが存在する.

これを編集して,置き換えればOK

/usr/lib/ruby/gems/1.8/gems/rails-2.1.1/configs/databases/

[参照]:config¥database.yml のテンプレート

2009-03-06

GLAMOURDISE‐グラモウディーズ‐

| 07:52

マカロンは大変おいしかった.

ケーキもミルフィーユは本とおいしかった.

ただ,リンゴのケーキはなんか,リンゴらしさがなく,変な重さだけが目立っていて微妙

京都伊勢丹にもホワイトデー期間中に出店されるみたいなので,もう一度いってみよう.

[参照]:GLAMOURDISE‐グラモウディーズ‐

『きっぽう』中華ビストロ 〜和み中華〜

| 07:50

元山店は木曜日定休?なのかな,しまっていて

かわりに住吉店に行ってきた.

15年ものの紹興酒がおいしくて感動.

季節の杏仁豆腐は少し微妙だった.

ただ,中華料理(゜Д゜)ウマー

[参照]:『きっぽう』中華ビストロ 〜和み中華〜

2009-03-03

RubyからPostgreSQLへの接続02

| 17:27

ようやく成功したのでメモを残しておきます.

まず,以下のコマンドを実行し,ruby-postgresの最新版を入手する.

gem install postgres -p http://proxy.(アドレス):(ポート) -- --with-pgsql-include=/usr/local/pgsql/include --with-pgsql-lib=/usr/local/pgsql/lib

次にPostgreSQLライブラリパスを通す(PostgreSQLは/usr/local/pgsqlいかにインストールされているとします)

  • (1) vim /etc/ld.so.conf
  • (2) 最終行に以下を記述

/usr/local/pgsql/lib

  • (3) /sbin/ldconfig

これで動くようになるはずです.

[参照]:RubyからPostgreSQL8.3系を使う

ATOK変換メモ

| 01:28

a) 推測候補機能

CTRL+変換キーでこの入力モードに入る.

常駐させたい場合は,

(1) ATOKプロパティ

(2) 入力・変換タブ

(3)「省入力・推測変換」の「推測候補モードを初期値にする」にチェックを入れる.

以下は辞書パックのショートカットによって変わる場合があるので確認すること

b) 住所変換

「きょうとし」とうちこみF3を押せば,あら不思議「京都市」に変換される.

100-0000と打てば,予測変換部分に東京都千代田区が出てくる

c) ATOKダイレクト(*プラグイン導入済みが前提)

CTRL+Insertを押す.

d) 連想変換

CTRL+Tab

類語やその意味が出てくる.ただし,連想変換にヒットするのは少ない?

e) 人名変換

F2

f) カタカナから英語への変換

「どっぐ」と入力してF4をおせば,あら不思議「dog」にかわります.

yasutomo57jpyasutomo57jp 2009/03/27 21:13 /usr/local/pgsql/lib
は,
/etc/ld.so.conf.d/以下に,適当に pgsql.conf
なんてものを作ってそこに書く方が正解かと.

2009-03-02

Vimで挿入モード時に1文字消す

| 02:59

バックスペースなんて遠いと言う方達へ

[Control]+[h]

ただ,何だろう

挿入モード時に訂正するって言うのはなんか違和感が

コマンドモードで消すべきじゃないのかなあ

京都 Ellieとカフェ

| 00:20

ドッグカフェ 「Ellieとカフェ」さん

一度除いてみたいものです.

お菓子も飲み物もおいしそうです.

住所:京都市岩倉忠在地町351−2

HP

google map