Ruby

#!で実行するコマンドを簡単に指定する。

#!/usr/bin/env ruby環境変数のPATHによって実行されるrubyが決定される。 ちなみに#!で指定するのをシェバングと言うらしい。 詳しくはこちら。

2冊目のRails本。

ライド・オン・Rails Ruby on Railsを徹底攻略作者: 吉田和弘,馬場道明出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/30メディア: 単行本 クリック: 52回この商品を含むブログ (88件) を見る購入。 パラパラッと見たところ、Webサービスとの…

lighttpdを使ったら文字化けした。

その対策。 app/controllers/application.rbに before_filter(:set_charset) def set_charset @headers["Content-Type"] = "text/html; charset=utf-8" endとして解決。

Ajaxのテスト。

xhr(:post, :search, :title => 'ああ')searchアクションにpost。titleはパラメータ。

よーしAjaxを使っちゃうぞ。

Ajaxでサーバと通信をしたい場合、該当のページに <%= form_remote_tag(:update => "results", :url => {:action => :search}) %> <p> <%= text_field_tag(:title) %> <%= submit_tag('検索') %> </p> <%= end_form_tag %> <div id="results"> </div>こんな感じのを追加する。ここでは検索処…

同じ処理をいろんなところで実行する。

長かった夏休みも今日で終わり。どんな夏休みでしたかと問われたら「酒とRailsな夏休み」と答えよう。 というわけで本題。 同じ処理をいろんなところで実行させたい欲求は至極当然。そんな場合はapp/controllers/applicaiton.rbに before_filter(:メソッド名…

トップページを変更する。

public/index.htmlを削除した上でconfig/routes.rbを map.connect('', :controller => 'account', :action => 'login')のようにすると、http://localhost:3000にアクセスした際、accountコントローラのloginアクションが表示されるようになる。

ちょっとしたモデルのテスト。

script/consoleと実行すると Loading development environment. >>こんな状態になるので モデル名.methodsと入力してメソッドの一覧を取得したり、そのモデルが持っているメソッドを実行することが出来るので、ちょっとしてテストには最適。

リレーションの設定

Railsでテーブルのリレーションができるなんてビックリだ。 おまけにちょー簡単。またもやテレビショッピングの外人司会者が出てきて「こんなに簡単なんて信じられるかーい、ジョン」 1:1の場合 どちらか一方のテーブルに『テーブル名の単数形』_idというフ…

データを更新する。

# idから更新対象のデータを取得 @group = Group.find(params[:id]) # パラメータを元に更新 @group.update_attributes(params[:group])findメソッドは Group.find(1, 2, 3)のように複数のidを渡したり、 Group.find(1, :conditions => "name = ?'aaa?'", :o…

データを新規作成する。

# パラメータを元にモデルのインスタンスを新規に作成 @group = Group.new(params[:group]) # データを保存 # すでに存在するデータの場合は更新するようだ @group.saveparamsにはPOST、GETで渡されたパラメータがHash形式で格納されている。値は全てString…

ローカルでマニュアルを参照する。

$ gem_serverと実行しWebブラウザからhttp://localhost:8808/にアクセスするとgemでインストールしたパッケージの一覧と、存在するのならrdoc形式のマニュアルを参照することが出来る。 ネットワークに繋がっているのなら、こちらの方がインクリメンタルサー…

テスト!テスト!テスト!

テストの基本的なことがやっとわかってきた。本を写経したお陰だ。写経の効果、侮り難し、ドラクエのレベルアップ音が2回くらい鳴った。 テストは大きく分けて二つのパターンがある。 表示するだけのページのテスト データ更新するページのテスト 表示するだ…

ヘッダ、フッタ、フォームの見た目を変更する。

この動画を今更ながら見たら、妙にやる気が出てきたので、飲みに行ってヘロヘロだけど今日やったことをまとめる俺格好良い。 ヘッダとフッタ app/views/layouts/テーブル名.rhtmlを編集 はスタイルシートを指定している stylesheet_link_tagにはpublic/style…

rails.elのキーバインド

Railsでの開発に当たって、rails.elを使い始めたのですがキーバインドが覚えられないのメモメモ。 主に使うのはrails-nav系、今のところは。 キー 機能 C-c g m rails-nav:goto-models C-c g c rails-nav:goto-controllers C-c g h rails-nav:goto-helpers C…

入力内容のチェック。

まずは何処に書くかっていうところですが、モデル側でチェックをするとのことで、app/models/モデル名.rbを編集する。 class Schedule < ActiveRecord::Base def validate unless attribute_present?('title') errors.add('title', '入力されていません') en…

一覧画面をカスタマイズする。

ハー、疲れた。MySQLの文字コードを適切に設定していなかったので、文字化けを起こしてしまった。修行が足りない。 憂さ晴らしに一覧画面をカスタマイズしてみる。 app/controllers/schedules_controllers.rbを編集し、listメソッド内で使用しているpaginate…

画面を作ってみる。

とりあえず画面を作ってみる。 $ script/generate scaffold Scheduleと実行する。ScheduleはRubyのモデル名なので大文字で。 exists app/controllers/ exists app/helpers/ exists app/views/schedules exists test/functional/ dependency model exists app…

テーブルをゴニョゴニョする。

本の内容をすっ飛ばして、気になって仕方がないテーブル操作をいろいろとやってみる。 商品を管理するproductsというテーブルを作ろう。 $script/generate migration create_productsdb/migrate/001_create_products.rbというファイルが作成されるので、それ…

mixin、ミキシン。

mixin、よく耳にしてはいたけど、何をするか全然わかっていなかったのでお勉強。そして読み方も。ミックスインって読んでたけど、Google多数決で確認したところ、ミキシンが圧倒的に多かったのでこれからはミキシンって読む。 module Hoge def puts_hoge put…

Ruby on Railsをアップデート。

Ruby on Railsに危険なセキュリティ・ホール,最新版1.1.5へアップグレードを | 日経 xTECH(クロステック) こんな記事が。 というわけでRuby on Railsをアップデート。 まずは必要かどうかを確かめるため、バージョンを確認。 $rails -v Rails 1.1.4要アッ…

database.ymlを簡潔に書く。

こちらを参考にdatabase.ymlを書き直した。 scheduler: &scheduler adapter: mysql username: rails password: host: localhost socket: /opt/local/var/run/mysql5/mysqld.sock encoding: utf8 development: database: scheduler_development <

テーブルを作ろうとしたら。

Ruby on Railsってデータベースにテーブルも作れるんだぜぃ、ちょーすげー、と喜び勇んでconfig/database.ymlを設定し、 script/generate migration create_schedulesでスクリプトのひな形を作成し、そこから定義を書いて cd ~/scheduler rake db:migrateと…

プロジェクトを作る。

Ruby on Railsのプロジェクトを作る。プロジェクトは何だろう、1つのアプリケーションのようなイメージだろうか。 その前にMySQLをごにょごにょ。rootにパスワードを設定していなかった、不用心だ。設定する。 mysqladmin5 -u root password 'password';続い…

MacにRuby on Railsをインストール。

MySQLも無事にインストールできたことなので、先日購入した本を参考にしつつ、MacらしくDarwinPortsを使ってRuby on Railsをインストールしてみる、えいえいおー。 まずはOSに始めから入っているRubyはバージョンが古いので最新版を入れる。 sudo port insta…

moduleを使ってみる。

近頃、W-ZERO3[es]とかにかまけてRubyのお勉強が進んでいない。これではダメだ、激しくダメだ、習得は一気にならないと、間を置かずにやらないと、自分を断罪、断罪、また断罪、というわけでmoduleを使ってみる。あまり自分では使う機会がないと思っていたけ…

小技。

文字列を追加する際の注意点 +=とすると処理が遅くなるので演算子かconcatメソッドを使用するべし。+=は追加される側の文字列、追加する文字列を変更せず、2つの文字列分のメモリを新たに割り当てるため。 正規表現が正しいかどうかを調べる Regexp.compile…

例外も忘れてた。

ウィルコムストアで購入したW-ZERO3[es]が未だに出荷去らずにもやもや、もんもん。それでもキャラバンは進むし、Rubyの勉強も進む、というわけで例外処理。 基本。 begin raise "逃げろー" rescue => exp printf("%s:%s?n", "rescue", exp.to_s) ensure put…

Duck Typingだガー。

Ruby関連のサイトを見ていると、Duck Typingという聞き慣れたい言葉が。 「アヒルのように歩き,アヒルのように鳴くものはアヒルに違いない」という西洋の格言が由来で、つまり私が愛してやまない実家に預けてある猫ちゃんも、ガーと鳴けばアヒルと見なされ…

ハッシュ忘れてた。

何故かハッシュのお勉強を忘れてしまっていた。近頃、忘れっぽくて困る。今日はメガネをかけたまま顔を洗おうとしてしまった。 何はともあれハッシュの初期化。 hash = Hash.new hash["key1"] = 1 hash["key2"] = 2 p hash結果。 {"key1"=>1, "key2"=>2}まと…