Hatena::Grouparaistudy

czk-htnの日記

2007-05-02

[][] rails.vim

Railsコードを書いている。やはり本で読んで知っているのと実際にコードを書くのは違う。プログラムは書かなければ絶対に覚えられない。これ鉄則。


rails.vimの使い方を覚えながらチマチマとすすめています。rails.vimYoutubeあたりにスクリーンキャストがあるので見ておくと良し。その前に本家のスクリーンキャスト三種をみておくとなおよし。rails.vimは激烈に便利なのでvim使いの方は是非いれておけ。


当初予定していた自分用TODO管理ツールは紙設計くらいはしておかないと構造が頭に入りきらないことが判明したのでWikiを習作としてやりなおしてます。TODO管理ツールはそれなりにRailsに慣れたら手をつけよう。Wikiは1時間程度でそれっぽいのが作れたんだけど、textilizeでマークアップしようとして怒られた後、どうしたらいいのか分からないので寝る。

[] script/generate migration hogehoge

先日 rake db_schema_dump で作ったファイルを db/migrate ディレクトリにおいて云々と書いたけど、全くのデタラメであった。db_schema_dumpで作られたファイルは rake migrate してもうまくいかない。migrate用のファイルは

% script/generate migration create_users

でできた db/migrate/001_create_users.rb ファイルを編集すること。

  • db/migrate/*.rb → 差分
  • rake db_schema_dump → フルダンプ
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20070502

2007-04-30

[] Capistranoも試してみたい

Capistrano(旧名SwitchTower)あたりも試してみたいよなぁ・・・と思いつつrailsコードを書いております。年内には有志でRoRの勉強会なんてやってみたいよね、といいつつVB6全盛の会社で興味がある人間が何人いることやら。

トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20070430

2007-04-29

[] Mongrel, plugin, migration

昨日嘘を書いてしまった。「付録E Rails 1.0での変更点」にちゃんとプラグインマイグレーションについて書かれていた。

plugin

% ./script/plugin
(ヘルプを表示)
% ./script/plugin sources
http://dev.rubyonrails.com/svn/rails/plugins/
% ./script/plugin discover -l
(リポジトリを表示)
% ./script/plugin list
(登録したリポジトリで利用可能なプラグインを一覧表示)

人気のプラグインってのがどこかでまとまってそうだな。

migration

  • スキーマ(テーブル定義とか)をSQLでなくRubyで書く
  • schema_infoというテーブルが作成されスキーマのバージョンが記録される
  • rake migrate コマンドで差分の更新が行える(戻すことも可能)
  • DBMSを意識せずスキーマ定義が可能

ってところ。最初にSQLで作成したテーブルを rake db_schema_dump でRubyコード化して db/migrateに置いてみる。

% cd ~/work/rails/todo
% mkdir -p db/migrate
% rake db_schema_dump SCHEMA=db/migrate/001_init_users.rb
(in ~/work/rails/todo)
% cat db/migrate/001_init_users.rb
# This file is autogenerated. Instead of editing this file, please use the
# migrations feature of ActiveRecord to incrementally modify your database, and
# then regenerate this schema definition.

ActiveRecord::Schema.define() do

  create_table "users", :force => true do |t|
    t.column "name", :string, :limit => 100, :null => false
    t.column "hashed_password", :string, :limit => 40
  end

end

Mongrel

% sudo gem install mongrel -y
Bulk updating Gem source index for: http://gems.rubyforge.orgSelect which gem to install for your platform (powerpc-darwin7.9.0)
 1. mongrel 1.0.1 (ruby) 2. mongrel 1.0.1 (mswin32)
 3. mongrel 1.0 (mswin32) 4. mongrel 1.0 (ruby)

... 略...

 46. mongrel 0.2.0 (ruby) 
 47. Cancel installation
> 1
Need to update 4 gems from http://gems.rubyforge.org
....
complete
Select which gem to install for your platform (powerpc-darwin7.9.0)
 1. fastthread 1.0 (ruby)
 2. fastthread 1.0 (mswin32)


... 略...


Successfully installed mongrel-1.0.1
Successfully installed daemons-1.0.5
Successfully installed fastthread-1.0
Successfully installed gem_plugin-0.2.2
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20070429

2007-04-28

[] Rails本 読了

RailsによるアジャイルWebアプリケーション開発

RailsによるアジャイルWebアプリケーション開発

コードを書きながら読んでいたんではいつまでかかるかわからないので一気に読了。

Rail1.0をベースに書かれているらしく、その後に追加された機能が(当然だが)載ってない。

あと日本語環境だと

  • ActiveHeart

とかを調べないといけないんだろうか。


しばらくはサンプルコードを書きつつ、本家とかRails'Wikiなどから情報収集をすすめる。

トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20070428

2007-04-19

[] rubyからsqlite3を使えるようにする

ちなみにusers.sqlの中身はこんな感じ。

drop table if exists users;
create table users (
       id integer not null,
       name varchar(100) not null,
       hashed_password char(40) null,
       primary key (id)
);

ポイントは

  • sqliteの場合全部大文字(小文字)小文字に統一しないとうまくいかない
    • IDとidは区別され小文字でないとid列として自動認識されない
  • PRIMARY KEYは自動的にAUTOINCREMENT
  • PRIMARY KEYはINTEGERタイプである必要がある(INTはダメ)

Rubyからsqliteを利用するためにgemでインストール。その後足場を作ってみる。でWEBrickを起ち上げて画面を確認する。

% sudo gem install sqlite3-ruby
% script/generate scaffold User Admin
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/admin
      exists  test/functional/
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/user.rb
      create    test/unit/user_test.rb
      create    test/fixtures/users.yml
      create  app/views/admin/_form.rhtml
      create  app/views/admin/list.rhtml
      create  app/views/admin/show.rhtml
      create  app/views/admin/new.rhtml
      create  app/views/admin/edit.rhtml
      create  app/controllers/admin_controller.rb
      create  test/functional/admin_controller_test.rb
      create  app/helpers/admin_helper.rb
      create  app/views/layouts/admin.rhtml
      create  public/stylesheets/scaffold.css
% script/server

ユーザ一覧・追加・変更・削除画面が作成されている。IDは自動採番なので入力させたくないわけで、そういうのはModelに属性として設定するらしい。attr_accessibleがキーワードらしいけど、それは次回。 列名が小文字でidならOK。

LonitraLonitra2011/12/22 16:15I can arleady tell that's gonna be super helpful.

egaginfegaginf2011/12/22 19:56AoGD8q <a href="http://banbmlnspjuc.com/">banbmlnspjuc</a>

abarilfclmrabarilfclmr2011/12/23 22:17viI4j9 , [url=http://veocdqskfsju.com/]veocdqskfsju[/url], [link=http://bdkahcipfbaf.com/]bdkahcipfbaf[/link], http://zfwzlazoehvn.com/

wbpigendwbpigend2011/12/24 23:1878z7Om , [url=http://xgicqeliuxte.com/]xgicqeliuxte[/url], [link=http://nidwyolnabbc.com/]nidwyolnabbc[/link], http://ikfwqajxtvll.com/

トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20070419