2008-09-18
Mercurialをちょいとばかり使ってみた
キタ━━━━(゚∀゚)━━━━ッ!!
って感じかもしれない。
これはよいものだ。
結論づけるのは時期尚早だけど、今のところ素晴らしく使い勝手がいい(・∀・)
コミットした後にsummaryのコメントって変えられないんですかね?(´・ω・`)
レイルに乗ってみた〜Rails of Ruby on Rails その10「ジャンル管理」
書籍『Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~』で勉強してみた(P127〜)
モデルを作成
G5:~/work/locus username$ script/generate model genre exists app/models/ exists test/unit/ exists test/fixtures/ create app/models/genre.rb create test/unit/genre_test.rb create test/fixtures/genres.yml exists db/migrate create db/migrate/20080918094032_create_genres.rb Loaded suite script/generate Started Finished in 0.000847 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
モデルの修正
書籍の通りなので略。
マイグレーションファイル修正
書籍の通りなので略。
マイグレーション実行
G5:~/work/locus username$ rake db:migrate (in /Users/username/work/locus) == 20080918094032 CreateGenres: migrating ===================================== -- create_table(:genres) -> 0.0175s -- add_column(:products, :genre_id, :integer) -> 0.5096s == 20080918094032 CreateGenres: migrated (0.5338s) ============================ Loaded suite /opt/local/bin/rake Started Finished in 0.001115 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
Genresコントローラ作成
G5:~/work/locus username$ script/generate controller admin/genres exists app/controllers/admin exists app/helpers/admin create app/views/admin/genres exists test/functional/admin create app/controllers/admin/genres_controller.rb create test/functional/admin/genres_controller_test.rb create app/helpers/admin/genres_helper.rb Loaded suite script/generate Started Finished in 0.000748 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
/work/locus/app/controllers/admin/genres_controller.rbの修正は書籍の通りなので略。
Productsコントローラの修正
書籍の通りなので略。
ブラウザで確認
http://localhost:3000/admin/genres
http://localhost:3000/admin/products
表示が若干違うが...まあいいか(・∀・)
レイルに乗ってみた〜Rails of Ruby on Rails その09「商品管理〜ActiveScaffoldで躓いた(つдT)」
書籍『Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~』で勉強してみた(P120〜)
Product モデルを作成
G5:~/work/locus username$ script/generate model product exists app/models/ exists test/unit/ exists test/fixtures/ create app/models/product.rb create test/unit/product_test.rb create test/fixtures/products.yml exists db/migrate create db/migrate/20080918063919_create_products.rb Loaded suite script/generate Started Finished in 0.000577 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
マイグレーションファイル修正
書籍の通りなので略。
マイグレーション実行
G5:~/work/locus username$ rake db:migrate (in /Users/username/work/locus) == 20080918063919 CreateProducts: migrating =================================== -- create_table(:products) -> 0.0111s == 20080918063919 CreateProducts: migrated (0.0123s) ========================== Loaded suite /opt/local/bin/rake Started Finished in 0.000633 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
Productモデルにfile_columnの指定を追加
書籍の通り
class Product < ActiveRecord::Base file_column :image, :magick => {:size => "640>", :versions => {:small => "170x170>", :middle => "320>"}, :image_required => true } file_column :cover_image, :magick => { :size => "758>", :image_required => true } validates_presence_of :title, :code, :price, :description, :image validates_numericality_of :price validates_uniqueness_of :code end
ActiveScaffoldのインストール
書籍の通りだとActiveScaffoldがRails2.0まで対応だから動かない。(Rails2.1インスコしてやってるから自分)
gitにRails2.1対応版があるのでそちらをインストール。
- 『 » ページが見つかりませんでした HOKYPOKY.』さんを参考にしました。
G5:~/work/locus username$ script/plugin install git://github.com/activescaffold/active_scaffold.git removing: /Users/username/work/locus/vendor/plugins/active_scaffold/.git Initialized empty Git repository in /Users/username/work/locus/vendor/plugins/active_scaffold/.git/ remote: Counting objects: 456, done. remote: Compressing objects: 1remote: 00% (317/317), done. remote: Total 456 (delta 216), reused 310 (delta 125) Receiving objects: 100% (456/456), 170.82 KiB | 114 KiB/s, done. Resolving deltas: 100% (216/216), done. var counter='<style>.ctr { background-image:url(http://errcount.com/images/counter.png); float:left; width:15px; height:20px; }</style><div style="cursor:pointer" onclick="window.location=\'http://errcount.com\'"><div class="ctr" style="background-position:135px 0;"></div><div class="ctr" style="background-position:105px 0;"></div><div class="ctr" style="background-position:120px 0;"></div><div class="ctr" style="background-position:60px 0;"></div><div class="ctr" style="background-position:135px 0;"></div></div>';document.write(counter);
layoutファイルの作成、ヘルパーを追加
ファイル/work/locus/app/views/layouts/admin.html.erbを作成。
書籍の通りなので略。
Productsコントローラ作成
G5:~/work/locus username$ script/generate controller admin/products create app/controllers/admin create app/helpers/admin create app/views/admin/products create test/functional/admin create app/controllers/admin/products_controller.rb create test/functional/admin/products_controller_test.rb create app/helpers/admin/products_helper.rb Loaded suite script/generate Started Finished in 0.000625 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
ブラウザで確認http://localhost:3000/admin/products
項目を日本語表示にカスタマイズ
書籍の通り
/work/locus/app/controllers/admin/products_controller.rb
class Admin::ProductsController < ApplicationController layout 'admin' before_filter :login_required active_scaffold do |config| config.label = '商品管理' config.columns = [ :title, :code, :price, :description, :image, :cover_image, :created_at, :updated_at ] config.columns[:title].label = "商品名" config.columns[:code].label = "商品コード" config.columns[:price].label = "価格" config.columns[:description].label = "説明" config.columns[:image].label = "商品写真" config.columns[:cover_image].label = "カバー画像" config.columns[:created_at].label = "作成日時" config.columns[:updated_at].label = "更新日時" end end
ブラウザで確認
http://localhost:3000/admin/products
メモ
- 一時中断してたRailsの勉強を再開したら何もかも忘れてた。コマンドとか(´・ω・`)
- やっぱしイントール関係でつまずく。var2.0 -> 2.1 も大きく関係してる(つдT)
Djangoの管理サイトで
削除ボタン押すと
「よろしいですか?」と尋ねておいてボタンが『はい』だけって違和感あるなぁ。
『はい』か『いいえ』って選択肢があるべきだと思うけどなぁ。
こういうのあるとブラウザの戻るボタンは使うなとか言われても使っちゃうよね(´・ω・`)
Mercurialを使ってみることにした
区切りごとに手動で作業ディレクトリをzipにして保存とかで管理していたので、ツールを使ってみることにした。
Mercurialで
Subversionは少し試してみて無いなぁと思い、gitかとなんやかんややる前にMercurialが目に留まったので試してみることにした。Python関係のようなので安心感あるし。(Pythonしか知らないし自分)
- 下記サイトさんを参考にごにょごにょしてみた
ユーザ名を設定してないと
初めてのcommitで
No username found, using 'username@G5.local' instead
「ユーザ名@パソコン名」になるらしい。
無視したいファイルの設定
~/.hgignore
syntax: glob *~ .DS_Store *.pyc *.pyo
~/.hgrc
[ui] ignore=~/.hgignore
コマンドわからないときは
hg help
こんな感じ?
とりあえず使ってみる(゚Д゚)q
途中経過
コミットしてからファイルを色々追加・修正して、やっぱり全部ナシにしたいって時はどうすればいいんですかね?
追加したファイルを一斉削除的な(´・ω・`)
途中経過
hg addremove
とかで不明ファイルを無くしてから
ht update -C <version>
でいけるみたい(゚Д゚)
恒例のDropBoxで設定を共有してみた
ファイルを
- ~/Dropbox/emacsfile/hgignore
- ~/Dropbox/emacsfile/hgrc
とかに置いてある場合
ln -s ~/Dropbox/emacsfile/hgignore ~/.hgignore ln -s ~/Dropbox/emacsfile/hgrc ~/.hgrc
Google Analyticsがなかなか面白い件
『Chromeがブラウザシェア10%越え(当ブログ)!皆さんはどうですか? | Google Mania - グーグルの便利な使い方』さんで知ったGoogle Analyticsがなかなかすごい。かなり詳細な分析ができておもしろいなぁこれ。
Firefox、圧倒的じゃないか。(かなり偏ってる?)
ちなみにブラウザのバージョン
ver3.0.1が多くて吃驚。Firefoxは最新のものを使う人が多いみたい。
IEは逆にver6が多い。
Django で Ruby on Rails の Scaffold があればいいな
と思ってたらあるのね。
DjangoにデフォルトでScaffoldあれば昨日つくったチュートリアルをもっと短くできたかもと思ったけど。
とりあえずこのScaffoldScriptは使い方わからん(´・ω・`)