アーカイブ

‘error’ タグのついている投稿

Railsで初期データ登録

2009 年 5 月 15 日 コメントはありません

自分用家計簿サイトをRails 2.3.2で構築しました.
今,友人や同期にClosed Beta Testしてもらっています.

ところで,Railsで初期データをどう扱うべきかという議論.
家計簿で言えば,費用項目名(食費,交通費,交際費…etc.)なんかはユーザが使う前に予め登録されてると便利.
いろんな方法が考えられるんだけど,最もRailsっぽいやり方はなんだろう?と.
# Rails開発のコツは,「できるかぎりRailsっぽく作ろうとすること」だと気づいた.
 すなわちDRYに,CoCに,楽しようという気持ちを忘れないことだ.
 これを守っている(= Railsに乗っている)間は本当に気持ちよく開発できる.

最初,以下の記事を読んでmigrationファイルの中にHoge.create :foo => ‘bar’とか書いていた.

テーブル定義以外にも、普通に ActiveRecord を使うときのように

User.create :name => ‘admin’, :password => ‘admin’

と書いて、テーブル内にデータを挿入することもできます。

via: pylori*style wiki – MigrationによるDB管理

ところが,production環境に移行したら,「Hogeという定数が無いよ」的なエラーでmigrateできなくなった.
# なんでdevelopment環境では怒られないんだろう?
いろいろ漁ってみたら,以下の記事を発見し,あまりよろしくない方法だったと気づく.

新しいモデルをUserモデルのbefore_createとかで使おうとしたら、一瞬でrake db:migrateが通らなくなってしまう。。。
今回の場合だと、UserモデルのvalidateでKeywordFilterというモデルを呼び出してフィルタ処理を追加したのだが、KeywordFilterテーブルが生成されるより前に初期Userデータを生成しようとして、rake db:migrateでkeyword_filtersテーブルが無いよ!!っておこられた訳で。。。まぁそら無いわな。

via: migrationで初期データを生成するのは辞めた方がよい。 – RAILS PRESS

結局,アカウントに紐付いた初期データはアカウントのController#create中で登録することにした.
アプリケーション全体で使うような初期データはデータを登録するだけのmigrationファイルを作った.
# ちなみに,上記の問題に限るならば,development環境ではmigrationできることを利用して,
 database.ymlでproduction環境のDBも開発用と共用してしまうという方法もあるらしい.

他に,fixtureを使う手もある.
デプロイ時にスクリプトでSQL文を発行しまくるという知人もいた.
boot.rbとかinitializerあたりに書くこともできそうだ.

んー.rakeに書くのが主流っぽいけど,どれもこれも一長一短に見える.
誰か,「初期データはこの方法で管理汁!」ってアドバイスがあったら教えてください.

カテゴリー: Uncategorized タグ: , , ,

Darklooks gtkrc

2009 年 4 月 20 日 コメントはありません

gnome-themes-extrasに入っているDarklooksはHumanより落ち着いていて目に優しい感じがするので気に入っている.
ところが,設定後にXが再起動されると色合いがリセットされてしまう.
理由がわからず放置していたんだけど,cappuccinoを起動したときのエラーメッセージで原因がわかった.

This bug is still present in Intrepid. About 50% of apps (including Firefox) revert to a basic GTK1 theme as a fallback because of errors in the gtkrc file for the Darklooks theme.

After comparing the Darklooks theme with the original Clearlooks theme on which it is based, the error is in the first line that defines the colour variables:

gtk_color_scheme = “fg_color:#E6E6E6\nbg_color:#555753\nbase_color:#2E3436\ntext_color:#D3D7CF\nselected_bg_color:#3F403D\nselected_fg_color:#7AA3CC\ntooltips_bg_color:#EDDE5C\ntooltips_fg_color:#000000″

There are TWO spelling errors in this line compared to the original Clearlooks which uses the singular tooltip_bg_color and tooltip_fg_color.

Removing the two Ss from tips fixes the problem, and given that Clearlooks is the reference design for Darklooks I suggest changing the top line to remain consistent across the family

via: Bug #215472 – Comment #23

いわゆるスペルミス…
/usr/share/themes/Darklooks/gtk-2.0/gtkrcを修正して直った.

カテゴリー: Uncategorized タグ: , ,

before_filter :login_requiredでテスト失敗

2009 年 4 月 17 日 コメントはありません

市況の煽りもあって(?),個人的に家計簿サービスを作っていて,
まぁ,いわゆるCRUDサービスだし,Railsで良いかと思って,
かと言って,ただRailsしてもつまらんし,現在最新の2.3.2で行こうと.
以前,会社で資産管理システム作って以来だから,全然わからん.

で.基本的な入出金入力とか一覧はできて,
そろそろ自分でもソースが把握しきれなくなりそうだったので,
テストケースを導入.
ところが,Restful Authenticationで困ってしまった.

# GET /cash_flows/1
# GET /cash_flows/1.xml
def show
  @cash_flow = CashFlow.find_by_id_and_user_id(params[:id], current_user.id)
    unless @cash_flow
      flash[:notice] = "You don't have permission to show #" + params[:id] + "!"
      redirect_to cash_flows_url
      return false
    end

とかやっている場所で,全部エラー.
そりゃそうだ.
だって,

class CashFlowsController < ApplicationController
  before_filter :login_required
# 中略
end

ってやってるんだもんよ.
こういう時,どうすりゃいいんだろ.
ごり押しで解決できないことはないけど,そういうのRailsらしくない.
絶対,楽に解決できる方法があると思うんだよな.

ST3500320ASの不良品

2009 年 4 月 6 日 コメントはありません

数日前から突然,自宅の自作PCが
「Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a Key」
とほざきはじめた.
むむっ?
OSのインストールCDを入れても同じメッセージ.

新しいHDDを買ってきて,ケースを開ける.
M/BはASUS P5Q-E.
SATA1ポートにDVDドライブ,2に起動HDD,3にデータ用HDD,4と5はeSATAにつないであるけど未使用.
6に新しく買ってきたHDDをつないでBIOS設定画面を覗いてみる.
なんと,6の新しく買ってきたHDDしか認識してない.
起動HDDの故障と読んでたけど,DVDドライブからデータ用まで一気に故障??
ありえん.
続きを読む…

カテゴリー: Uncategorized タグ: ,

PSoC Designer 5.0 SP3a

2009 年 3 月 23 日 コメントはありません

To Install:
1. Shut down any currently running instances of PSoC Designer.
2. If already installed, uninstall the present version of PD 5.0.
3. Although PSoC Designer 5.0 will run normally in restricted user mode, installation requires administrator level privileges. Insure the account performing the installation is logged in with administrator privileges.
4. Download and install the all-in-one file for PSoC Designer 5.0 plus SP3a by running the provided installer.
5. Download and install the latest PSoC Programmer by running the provided installer.

via: PSoC Designer(TM) 5.0 SP3a – Cypress Semiconductor

明日,CyFi RFワークショップに行くのでPSoC Designerを最新版にしようと思ったら,
まずSP1を通常ルートでアンインストールできねぇ.
HI-TECHやらProgrammerもアンインストールして,フォルダも削除して,COMODO System CleanernCleanerでレジストリ整理しても…
まだインストールできねぇ.
「旧バージョンがインストールされています」とか怒られる.
ググってみたら困ってる人は結構いるみたい.
# 開発者心理としてもアンインストーラはインストーラほど気合い入れて作らんのだろうな.
頭にきたのでregeditで”cypress”と”psoc”を検索して削除しまくる.
※ At Your Own Riskでお願いします.
やっとインストールできたべさ.
PSoCの予復習しとこうかと思ったけど,月末経費処理が忙しかったので明日ぶっつけで.

カテゴリー: Uncategorized タグ: , , , ,