enjoy Ruby! このページをアンテナに追加 RSSフィード

   papandaのRubyを楽しむ日記。

2007-05-14

AptanaIDEで、Railsアプリを作ろう!

まずは、「ファイル」からRailsアプリケーションを作る。


DBへの接続の設定をする。

configフォルダの下に、database.ymlができる。

中身を適宜変更する。

(例)

development:
  adapter: mysql
  database: test
  username: root
  password: xxxx
  host: localhost

Generatorsビューから、「model」を選択する。名前は

適当に、memoとでもしようか。

これで、app/modelsフォルダの下に、memo.rbが作成される。


次は、CreateTableのためのファイルを用意する。

db/migrateフォルダの下に、既に、001_create_memos.rbが

用意されている。

この中身を編集する。

class CreateMemos < ActiveRecord::Migration
  def self.up
    create_table :memos do |t|
      t.column :name, :string
    end
  end

  def self.down
    drop_table :memos
  end
end

ごっつ、適当


Rake Tasksビューから、db:migrateを選択する。

そのままでは、そっけないログしかをコンソールに出さないため、


念のために、MySQLのCommandLineからTableを確認する。


mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| memos |

| schema_info |

+----------------+

2 rows in set (0.00 sec)


memosテーブルと、管理用のschema_infoができている。

schema_infoでバージョンを管理する。


最後に、Generatorsビューで、「scaffold」を選択。

テキストエリアには、「memo」を入力し、実行。

CRUDアプリケーション自動生成する。


Serversビューから、Webサーバを立ち上げる。

後は、動作確認。


Generatorsコマンドや、Rakeタスクが既に、用意されている

ので、思い出す必要がなく、その辺は便利。

トラックバック - http://rubyist.g.hatena.ne.jp/papanda0806/20070514

2007-05-13

papanda080620070513

AptanaIDE+Railsを使ってみよう!

まずは、ダウンロード

http://www.radrails.org/download_rails_rdt.php

やり方は、Stand-alone Installに書いてあるので

その通り進めていく。

f:id:papanda0806:20070513170557j:image

ソフトウェア更新機能を使う。

(1)「ヘルプ」→「ソフトウェア更新」→「検索およびインストール」を選択。

(2)「インストールする新規フィーチャーを検索」を選択。

(3)「Ruby on Rails Development Environment」を選択し、終了。


・・・と、ここで、何故かエラーが帰ってくる。

ん?Aptanaサーバでも落ちてんのか?と思って、

直接見てみると、きちんと営業中。

原因Nortonファイヤウォール。一時的にオフにして、

UPDATE

これで、Railsパースぺクティブが開けるようになった。

RubyRailsの設定。

(1)「ウィンドウ」→「設定」を選択。

(2)「Ruby」→「Installed Interpreters」を選択。

(3)「Ruby VM home directory」にて、ローカルRuby binを指定。

f:id:papanda0806:20070513183617j:image

(4)「Rails」→「Configuration」→「Rails」「Rakeパスを指定。

とりあえず、これで、Rubyは動くね。

トラックバック - http://rubyist.g.hatena.ne.jp/papanda0806/20070513

2007-05-04Rubyistを目指そう。

Ruby再開!

半年ぶりです(w

最近DOAや要求開発、アジャイルに熱を上げており、

すっかり、Rubyとはご無沙汰でした。

ところが、回りまわって、Rubyに帰ってきました。

アジャイルを追いつづけると、Rubyに帰着する。

実装を置き去りにして、開発プロセス改善なんて、

できない。

システムインテグレータなのだ。

システム構築は一気通貫で捉えなければならない。


てなわけで、Rubyおよび、RoRです。

最近Rubyレシピ本を購入。

また、RoR本では、

Ruby on Rails入門優しいRailsの育て方

Ruby on Rails入門優しいRailsの育て方

を読み終えました。

やはり、RoRは、熱い。読後感は、ちょっと興奮が

ありましたね。

改めて、Rubyistへの道へ踏み出したいと思います!


しかし、はてなグループ日記は、はんなダイアリーより

機能的に、相当力不足ですね。

トラックバック - http://rubyist.g.hatena.ne.jp/papanda0806/20070504

2006-11-25

DaveThomasファンの私。

やはり、プログラミングRubyを購入してしまいました。

というわけで、プログラミングRuby言語編(第二版)の

読書日記を始めます。

プログラミングRuby(言語編)~第1章さあはじめよう。

実行環境インストール

まずは、Rubyのインストールから始まります。

私の環境には、すでに、バージョン1.8.4がインストール済み。

Rubyドキュメント

コマンドラインベースドキュメントがあったんですね。

ri クラス

ri メソッド名

ri クラス.メソッド

で、英語だけどドキュメントを見ることができる。

ありゃ、1章終了。

プログラミングRuby(言語編)~第2章Ruby.new

Rubyの基本

Rubyでのコンストラクタの書き方。

クラス名.new

song1 = Song.new("enjoy Ruby!")


#簡単なプログラム

def say_hello(name)

ret = "Hello World " + name

return ret

end

puts say_hello("papanda")


コメントは、#で始める。

行末のセミコロンは不要。

変数の宣言は不要。代入時に変数が割り当てられる。

メソッドを呼ぶ際の括弧は不要。

puts say_hello "papanda"

でも言いわけだ。

これが、最初の戸惑いだった。

Thomasさんも、単純なケースを除いて、括弧で囲むことを

お勧めしているので、安心してそれに従おう。


ダブルクォートで囲まれた文字列は以下のようなことが

できる。

puts "hello,\npapanda"

これはもちろん、

hello,

papanda

と出力される。


def say_hello(name)

ret = "Hello World #(name)"

return ret

end

という式の展開も行うことができる。

なお、最後の文が戻り値となるので、

def say_hello(name)

"Hello World #(name)"

end

という書き方も許される。


Rubyの命名規則について。

配列ハッシュ

a = [1,'cat',nil]

という書き方。添え字は0はじまり。

a[0]は、1となる。


ハッシュは、

inst_section = {

'cello' => 'string',

'clarinet' => 'woodwind'

}

という書き方。

アクセスするには、

inst_section['cello']

となる。

文修飾子

if count > 10

puts "ten!"

end

は、

puts "ten!" if count > 10

とも書ける。


yield

def call_back

puts "start"

yield

yield

puts "end"

end

call_back {puts "hello"}

結果は、

start

hello

hello

end

メソッドは自分に関連付けられたブロック

yield文で呼び出すことができる。

プログラミングRuby(言語編)~第3章クラスオブジェクト変数

class Song

def initialize(name)

@name=name

end

end

song=Song.new("papanda")

initializeというメソッドが必要。newされた時に呼ばれる。

なお、Rubyは、クラスの内容を追記するのに、

class Song

def call

p @name

end

end

という書き方ができる(!)

song.call

とすると

papanda

が出力される。


class PapandaSong < Song

def initialize(name)

super(name)

end

end

クラス継承


アクセスメソッドの作成。

class Song

def initialize(name)

@name=name

end

def call

p @name

end

attr_reader :name

attr_writer :name

end

song=Song.new("mimi")

song.call #=>mimiと表示される。

song.name="papanda"

song.call #=>papandaと表示される。


クラスメソッドの定義。

class Song

@@name #クラス変数

def Song.class_method

end

end


RubySingleton

class Demo

private_class_method :new

@@demo=nil

def Demo.create

@@demo = new unless @@demo

@@demo

end

end

アクセス制御

class Demo

def demo1 #デフォルトはpublic

end

protected

def demo2

end

public

def demo3

end

private

def demo4

end

end

もしくは

class Demo

def demo1

end

def demo2

end

def demo3

end

def demo4

end

public :demo1,demo3

protected :demo2

private :demo4

end

ポインタだらけ

panda1 = "mimi"

panda1.class #=>String

panda1 #=>"mimi"

panda2 = panda1

panda2.class #=>String

panda2 #=>"mimi"

panda1[0] = 'M'

panda1 #=>"Mimi"

panda2 #=>"Mimi"

変数リファレンスを保持するため、中身が変わる。

まさにポインタ

irb良いね

さくっと、コードの検証ができるから。

トラックバック - http://rubyist.g.hatena.ne.jp/papanda0806/20061125

2006-09-03

RoR勉強

先日、初心者向けのRoR勉強会に参加してきました。

日本UNIXユーザ会が主催した企画です。

講師は、「たのしいRuby」の著者でもある、高橋征義氏。

内容は、高橋さんが実際にRailsを使ってアプリケーション

がしがし開発するというものでした。

2時間の枠があったのですが、あっという間でした。

あれだけ簡単にアプリケーションができると、プロトタイプ開発

にかなり有効なんじゃない?と思うのですがどうなんでしょう。

国内の事例ってあるのかな?

AsmanAsman2012/08/05 01:07What a pleasure to find someone who identifies the issues so celalry

fnkcgyfnkcgy2012/08/05 16:11cGwgzH <a href="http://nuyqekrhoipl.com/">nuyqekrhoipl</a>

gdvtwqfptdjgdvtwqfptdj2012/08/06 12:32IQJxxN , [url=http://qjfydcmeqbli.com/]qjfydcmeqbli[/url], [link=http://dqqlfxozjijj.com/]dqqlfxozjijj[/link], http://qzbbgxmmqigo.com/

yxncglesyxncgles2012/08/07 07:19c6ijYq <a href="http://kpnyxfhqqiha.com/">kpnyxfhqqiha</a>

erxdrxkzncerxdrxkznc2012/08/07 19:48KJCwRV , [url=http://emsctaejswkd.com/]emsctaejswkd[/url], [link=http://kvyzsrvydbgk.com/]kvyzsrvydbgk[/link], http://ryrcofzmjjmv.com/

トラックバック - http://rubyist.g.hatena.ne.jp/papanda0806/20060903