タグ

ブックマーク / yuumi3.hatenablog.com (38)

  • Ruby on Railsの5年間 (Rails勉強会@東京第42回に行ってきた) - yuumi3のお仕事日記

    Rails勉強会@東京第42回に行ってきました。 後半のセッションでは、「Ruby in Railsの5年間を振り返る」という面白いセッションに参加しました。下のその際のホワイトボードの画像はです(クリックすると拡大されます)。 左から、 Ruby on Railsの(リーリース)歴史と、2.0以降の主な項目 その下はスペースの関係で Problem (問題点) 真ん中が Keep (良かったこと) 右が Try (これから、Rails勉強会でやって行くべき、行きたい事) このセッションの趣旨は、Ruby on Railsも生まれて5年も経ったので、それを振り返ってみるですが。 それ以上に、空前の Ruby on Railsブームを経てそれが落ち着つき5年という時間が経った現時点でも、日ではRuby on Rails は企業などで普通に使われる存在にはなっていない事を検証してみよう? と

    Ruby on Railsの5年間 (Rails勉強会@東京第42回に行ってきた) - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/08/31
  • fixtureファイルに画像データを含めるには - yuumi3のお仕事日記

    Ruby on Rails の開発でデータベースにテストデータを設定する fixture は便利ですが、カラムに画像データのようなバイナリーデータを入れたい場合は、下のようなコードで出来ます。 <% def image_data(file_name) ActiveSupport::Base64.encode64(IO.read("test/fixtures/img/#{file_name}")).gsub(/^/, " ") end %> neko: screen_name: neko password: pass profile_image: !binary | <%= image_data 'se_025.png' %> kame: screen_name: kame password: pass profile_image: !binary | <%= image_data 'se_

    fixtureファイルに画像データを含めるには - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/08/08
  • Ruby on Rails で Apache という名前のモデルには注意しよう ^^) - yuumi3のお仕事日記

    仕事で作った、Ruby on Railsのプロトタイプの中に Apache というモデルがありました。対応するテーブル名は Railsのルールに則り apaches です。 他にも幾つかのモデル(テーブル)がありました。テストデータを 各fixture に書いたのですが、apaches.ymlのみ id の値が変です。 Railsの fixture ではidの値を明示しない場合は、そのデータのラベル名の hash値が id の値になります。通常9桁くらいの数になっています。 ところが、apachesテーブルのid値は2桁の小さな連番です、apachesテーブルと関連を持つ他のテーブルの外部キー(apache_id)の値は9桁の数値です。 なぜだろう!? と気になったのですが、他のテーブルの外部キーの値を apaches.yml のidに指定して仕事を進めていました。しかし、ひょんな事から

    yuiseki
    yuiseki 2009/07/10
  • あるRuby on Railsプロジェクトのふりかえり - yuum3のお仕事日記

    昨年末から始めた、Ruby on Rails を使ったある仕事がひと段落したので、ふりかえってみました。 この仕事で作ったWebアプリの詳細は書けませんが、画面数 60、テーブル数 15 と小規模のものでした。システムはところどころに難しい部分はありました、UIは一部に Ajax(JQueryを使用)を導入し使い勝手を高めています。 1. ソースコードが少ない! 書いたRubyコードの行数を合計すると 約3600行 しかありませんでした! 1画面あたり 60行しか書いてない !! ・・・「あんまり仕事してないじゃん!」と思わずつぶやいてしまいまました ^^); やはり、Ruby on Rails は生産性が高いと言われる通りです。 ただし、だらだらとコードを書かないように以下のように注意しました。 共通部分はモジュール化しMix-inで共有 継承による機能の共有は設計が難しくなりますし、委

    yuiseki
    yuiseki 2009/06/10
  • Ruby on Railsで一通り開発できるようになったら読んでほしい「 プログラミング言語 Ruby 」 - yuumi3のお仕事日記

    プログラミング言語 Ruby 作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型購入: 21人 クリック: 356回この商品を含むブログ (123件) を見る JavaPHPの世界から、Ruby on Railsを使う為にRuby言語を始めた人も多いと思います。RubyJavaPHPのようなナイーブなコーディングスタイルでもプログラムを書くことができますが、やはり Ruby で生産性が高く、しかも美しいプログラムを書くには、関数言語的なブロック、イテレータや 動的なオブジェクト指向を習得する必要があります。 このは、厚さもあり入門書として読むには向いてないかもしれませんが、Ruby on Railsで一通り開発できるように成った人が読むのに向いていると思います。Ru

    Ruby on Railsで一通り開発できるようになったら読んでほしい「 プログラミング言語 Ruby 」 - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/05/22
  • Ruby on Rails でカラム名 no は使えない - yuumi3のお仕事日記

    Ruby on Rails (試したのはバージョン2.3RC2) でカラム名 no は使えません。 なぜか fixture を load しようとすると以下のようなエラーが発生します ^^); rake db:fixtures:load (in /Users/yy/RailsWorks/boro) rake aborted! PGError: ERROR: column "false" of relation "products" does not exist LINE 1: INSERT INTO "products" ("price", "name", "false", "created_a... ^ : INSERT INTO "products" ("price", "name", "false", "created_at" ......... ) VALUES (26000, E

    Ruby on Rails でカラム名 no は使えない - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/04/26
  • Rails2.3 ではURL中の ; はパラメターの区切りに解釈されるようだ - yuumi3のお仕事日記

    Rails2.3にポートしたアプリに思わぬバグが発生したので調べたところ、URL中の ; (セミコロン)の解釈が従来と変わったようです。 Rails2.1.2 GET http://localhost/redirects/887308412?a=3;b=2 の場合 Parameters: {"a"=>"3;b=2", "action"=>"show", "id"=>"887308412", "controller"=>"redirects"} Rails2.3.2 GET http://localhost/redirects/887308412?a=3;b=2 の場合 Parameters: {"a"=>"3", "b"=>"2", "action"=>"show", "id"=>"887308412", "controller"=>"redirects"} 検索してみると URI属性値の

    Rails2.3 ではURL中の ; はパラメターの区切りに解釈されるようだ - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/04/25
  • Scaling Railsはお勧め! - yuumi3のお仕事日記

    ぎっくり腰になってしまったので、家でごろごろしながらを読んだり動画を見たりしてましたが RailsLab .:. Scaling Rails は超お勧めです。 Ruby on Railsのキャッシュには、Page Cache, Action Cache, Fragment Cacheの3つがありますが書籍の文章だけでは、どれを使うのが自分のアプリにとってベストなのかは解りにくいかと思います。 このビデオでは、それぞれのCacheの方式の解説、サンプルコードと どんなケースで使うべきか? などの説明があり、とても解りやすいです。 また、英語が不得意な私でも十分に理解できます。説明の構成や内容、図、話し方が良いからだと思います。 Ruby on Railsのキャッシュ機能を使ってみたいな?と思っている方は是非みて下さい。

    Scaling Railsはお勧め! - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/04/15
  • オレオレscaffold generator を作る - yuumi3のお仕事日記

    Ruby on Rails の Scaffold generator はアプリの元になるコードを生成するに便利ですが実際のアプリを作る際には、XMLをレスポンスするコードは要らないとか、日語じゃないとか、テンプレートがイマイチだとかいろいろ不満点があると思います。 標準のScaffoldの作成するコードを少し変えるだけならとても簡単です。 オレオレscaffold generatorを置く場所 まず、オレオレscaffold generator を置く場所ですが、Ruby on Rails guidesの 2.3 The Rails Generation: Generatorsにあるように RAILS_ROOT/lib/generators 、 ~/.rails/generators などが考えられます。プロジェクト固有のオレオレscaffoldなら RAILS_ROOT/lib/gen

    オレオレscaffold generator を作る - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/03/24
  • Ruby on Rails 2.3 で I18N を使ってみた - yuumi3のお仕事日記

    バージョン2.2はスキップしてしまったので、正式なI18Nを使うのは バージョン2.3 が初めてです。 Rails2.2の新機能i18nを使ってみる - func09 が大変参考になりました。 ただし、この記事はバージョン2.2正式版の前を使ったものなので現在はもっと簡単です。 設定 % vi config/initializers/locale.rb ---- 内容は --------------------- # I18n.default_locale = "ja-JP" バリデーションメッセージ、日時等のリソース % vi config/locales/ja-JP.rb ファイルの内容は Rails2.2の新機能i18nを使ってみる - func09 をそのまま利用させて頂きました m(__)m この設定だけで、バリデーションメッセージや日付のセレクトボックスは日語化されます。 テ

    Ruby on Rails 2.3 で I18N を使ってみた - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/03/19
  • Passenger はどのユーザーアカウントで動くのか? - yuumi3のお仕事日記

    先日ちょっとしたトラブルがあり、ふと Passenger はどのユーザーアカウントで動くのかな? と思い調べてみまいした。 下の ps の表示では Passenger は アプリ(ここではRedmine)を UID=1001 のユーザーで実行しています。このUIDは私のログインアカウントです。 しかし、Passengerの設定に私のユーザー名やUIDは書いてありません、どうやってPassengerは私のUIDを使ったのでしょうか? % ps alx F UID PID PPID PRI NI VSZ RSS ... TIME COMMAND ... 1 0 366 6960 20 0 93060 34044 ... 0:02 Passenger FrameworkSpawner: 2.1 0 0 6960 6959 20 0 45896 12332 ... 0:05 Passenger s

    Passenger はどのユーザーアカウントで動くのか? - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/03/16
  • RSpec を実案件で使ってみた - yuumi3のお仕事日記

    昨年末から、ある小規模(60画面程度)のRuby on Railsを使ったシステムを開発する際に、RSpecを使ってみましたので、その感想などを どこまで書くか 今回は、Model, Library, Helper に対してのRSpecのみ書きました、従来のRailsUnitTestに相当する部分のみです。 ただし、コントローラーには絶対にロジックを書かないようにし、ロジックは Model, Library に書くようにしましたのでかなりテストは出来ていると思います。 読みやすい RSpecは従来のユニットテストに比べコンパクトに書けるのでテストが読みやすくなります。理由はいろいろとあると思いますが UniTestのassertは assert(期待値, テスト対象のメソッド)とテスト対象が後ろの方にありますが、 RSpec では テスト対象のメソッド.should == 期待値なので、

    yuiseki
    yuiseki 2009/01/31
  • [Ruby] Rails(ActiveRecord)の多対多関連 - yuumi3のお仕事日記

    今やってる RailsWorkShopの課題では、テーブルが多対多の関連を持っていいます。このへんの知識は無かったので、昨日、じっくりと学習してみました。 課題のテーブル構造 events: 出来事  tags: 出来事に付けるタグ  taggings: 出来事とダグの関連(交差テーブル) RailsのActiveRecordは多対多関連も扱えますが、2つの方法があります。 1. has_and_belongs_to_many (略して habtm)  この方式では交差テーブルの面倒は全てActiveRecordが見てくれます。ただし、交差テーブルには2つのテーブルのid以外のカラムは持てません。単純に多対多を実現した場合はこの方式は便利です。 2. has_many :throw この方式は交差テーブルを介して一対多のテーブルがあるような扱いで、交差テーブルを介しての参照(select,

    [Ruby] Rails(ActiveRecord)の多対多関連 - yuumi3のお仕事日記
    yuiseki
    yuiseki 2009/01/21
  • jQuery TreeView, Flexigrid を Rails で使ってみた - yuumi3のお仕事日記

    訳あって、jQuery プラグインの TreeView, Flexigrid を Ruby on Rails + jRails で使ってみました。以下の画像のように左のツーリー(TreeView)で選択したディレクトリー内のファイル一覧が 右側の テーブル(Flexgrid) に表示されます。 使っているソフトなど jQuery jQuery Flexigrid for jQuery クールなグリッド(テーブル)の表示 jQuery plugin: Treeview ツーリー表示 jRails - jQuery on Rails Railsのlink_to_remote等のAjax機能を jQueryで使えるようにするプラグイン nickfessel.com - Put Flexigrid on Rails Flexigrid用 Ruby on Railsのコード例 今回作ったコード 実際

    jQuery TreeView, Flexigrid を Rails で使ってみた - yuumi3のお仕事日記
    yuiseki
    yuiseki 2008/11/12
  • yuum3のお仕事日記 - migrationファイルの調整、テーブル作成

    Model で作成された各テーブル用migrationファイルに NOT NULL制約や index を追加します。 制約やindexの付け方にはいろいろな流儀があると思いますが、今回は以下のような考え方で付けます。 NOT NULL制約は外部キーのようにそこがnullになってしまうと明らかにデータ構造がおかしくなってしまうカラム また、テーブルの核になるデータでそのカラムがnullのデータというのはありえないカラム index は外部キー等でjoint等で絶対用いられるカラム どのようなルールにするかは、作成するDBの性格や文化があるので、これが正解だというのはありません。ただし、一つのプロジェクトの中では統一された考え方や一貫性があることは重要だと思います。 例: class CreateRequests < ActiveRecord::Migration def self.up cr

    yuum3のお仕事日記 - migrationファイルの調整、テーブル作成
    yuiseki
    yuiseki 2008/09/07
  • ActiveRecord(Rails)を使ったコンソールアプリの作り方 - yuumi3のお仕事日記

    きっと、ActiveRecord(Rails)を使ったコンソールアプリを作るプラグインとか在るだろうと探したのですが、私には見つけられませんでした。 しかし、How to Build Simple Console Apps with Ruby and ActiveRecord というページが見つかりました。 ここでは、ActiveRecord等を require し、自分で初期化等をして使っていました。 このやり方でも良いのですが、初期化部分などを書くのは Railsらしくないので、 ActiveRecod等の機能が使える script/console のソースを見たところ、config/environmentを requireすれば良いと判りました。 #!/usr/bin/env ruby require File.dirname(__FILE__) + '/../../config/e

    ActiveRecord(Rails)を使ったコンソールアプリの作り方 - yuumi3のお仕事日記
    yuiseki
    yuiseki 2008/08/28
  • NetBeansでRuby on Rails の開発 - yuumi3のお仕事日記

    UTF-8のソースコードが文字化けしていたのですが、NetBeans Ruby Pack のファイルエンコーディングサポート に書いてあるように、NetBeansのオプションにUTF-8を指定します。 NetBeans には慣れてないので、オプションを書くファイルを見つけるのに手間取りました。Mac の場合は % cd /Applications/NetBeans 6.0 M9.app/Contents/Resources/NetBeans 6.0 M9/etc % vi netbeans.confnetbeans_default_options="-J-DAM_CONFIG_FILE=\"/Applications/SUNWappserver/domains /domain1/config/AMConfig.properties\" -J-Dcom.sun.aas.installRoot

    NetBeansでRuby on Rails の開発 - yuumi3のお仕事日記
  • サーバーへデプロイ - yuumi3のお仕事日記

    もう締め切り間近なので、サーバーへ「Rails南蛮通事」をデプロイしました。 締め切りまでの間に何度もデプロイすると思われるので、Capstrano で 開発環境(Mac)から簡単にデプロイ出来るようにしました。 情報元は http://manuals.rubyonrails.com/read/chapter/97 です。 *注意* 最新の Capstrano のバージョンは 2.0.X です。しかし、ここで書いたものは 1.4.1 での手順、設定です。(締め切り間近なので前から使ってるバージョンにしました) 準備 ssh でサーバーへのログイン、known_hostsへの登録確認が出ないようにする為 サーバー上で Subversion から checkout 出来る事の確認。サーバー上のインストールで使うアカウントにSubversionのログイン、パスワードを設定する。 ruby/rai

    サーバーへデプロイ - yuumi3のお仕事日記
    yuiseki
    yuiseki 2008/03/12