2011/06/27

rails3.0で動的ルーティングを実現する。

例えば、

http://devel.com/userA/controllerA/actionA
http://devel.com/userB/controllerA/actionA
http://devel.com/userA/controllerB/actionA
http://devel.com/userB/controllerB/actionA

のようなルーティング(パスの最初のセグメントが動的)をRails3.0で実現するには、
config/routes.rbに、次のような定義を書く。

config/routes.rb
scope "/(:username)" do
  get "controllerA/actionA" => "controllerA#actionA"
  get "controllerB/actionA" => "controllerB#actionB"
end

この「scope」の定義により、

http://devel.com/userA/controllerA/actionA

がリクエストされた場合、コントローラ"controllerA"のアクション"actionA"が実行され、
その際に、params[:username]に"userA"が設定されている。

また、named_helperは、
controllerA_actionA_path(:username)
controllerA_actionA_url(:username)
controllerB_actionA_path(:username)
controllerB_actionA_url(:username)

が生成される。

2011/06/12

バジル

ベランダでバジルを育てています。
陽当たりのよい場所に移してあげたら、葉が増えてきました。
もう少ししたら食べてしまうつもりです。

2011/05/15

Ruby On Rails本

Ruby On Railsの習得のために購入した本です。
どちらもRails2.3です。2.3で開発するには必須のアイテムだと思います。





rails2.3-ajaxで更新した結果をrjsを用いて反映する。

更新後のレンダリングを、RJSに移譲する。


controller
# item_controller.rb
def create
  @item = Item.new(params[:item])
  respond_to do |format|
    if @item.save
      format.js # <- create.js.rjs
    end
  end
end
rjs
/*
 * id:items の要素の下部(:bottom)に、
 * @item(:object => @item)をレンダリングした部分テンプレート"item"の結果を
 * 挿入する。
 * "items"がtbodyなどの要素だと、行挿入になる。
 */
page.insert_html(:bottom, "items", :partial => "item", :object => @item)

2011/05/08

Rails3.1beta

2011年5月5日、Ruby On Rails3.1betaがリリースされたようですね。

Rails 3.1 beta 1 released

2011/03/31

railsでblob型のカラムを追加するmigration

railsで画像をDBに格納するために、BLOBのカラムを追加する。
以下のmigrationを生成する。


 $ script/generate migration AddAvatarToUsers avatar:binary
 $ rake db:migrate

2011/03/21

rails2.3-sqlite3

railsでsqlite3を使用するための初期設定。
(ubuntu10.10)

$ sudo apt-get install sqlite3
$ sudo apt-get install libsqlite3-dev
$ sudo apt-get install libsqlite3-ruby
$ sudo gem install sqlite3-ruby

でセットアップ完了。

railsアプリの作成は、
$ rails -d sqlite3 [appname]

作成後、http://localhost:3000にアクセスし、
「about your application's environment」リンクをクリック。
エラーなく表示されれば、環境的には問題無し。

emacs

emacs23の設定について
rails,html,cssの編集のための設定。

を~/.emacsにて設定するメモ。

1.インストール
  1) emacs starter kitのインストール
       emacs-starter-kit を取得する。
       ~/emacs.d としてcloneを取得。
   2) rinari のインストール
       rinari を取得する。
       取得後、
       $ cd rinari
       $ git submodule init
       $ git submodule update
       を実行する。
    3) rhtml のインストール
       rhtml を取得する。
    4) html-helper-mode
       html-helper-mode.el,tempo.el,html-font.elを取得する。
    5) css-mode
       css-mode.elを取得する。

2. ~/.emacsの編集

;; rinari
(add-to-list 'load-path "~/devel/emacs/lisp/rinari")
(require 'rinari)

;; rhtml
(add-to-list 'load-path "~/devel/emacs/lisp/rhtml")
(require 'rhtml-mode)
(add-hook 'rhtml-mode-hook
          (lambda () (rinari-launch)))

;; html-helper-mode
(add-hook 'html-helper-load-hook '(lambda () (require 'html-font)))
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist
      (append '(("¥¥.html$" . html-helper-mode)
                ("¥¥.shtml$" . html-helper-mode)
                ) auto-mode-alist))

;; css-mode
(autoload 'css-mode "css-mode")
(setq auto-mode-alist (cons '("¥¥.css$" . css-mode) auto-mode-alist))

2011/02/16

映画1

趣味がないので、困っている。
映画やDVD鑑賞を趣味にしようと、週末に観ている。
最近観たのは↓。

ソーシャル・ネットワーク
パブリック・エネミーズ
ソルト

ソーシャル・ネットワークは、職業柄とても興味深かった。
パブリック・エネミーズは、(全然違うけど)マスク・オブ・ゾロを観たときと似た感覚になった。
ソルトは・・・ 、ギュッて詰め込みすぎて、オチが入りきらなかった風。

今週末は、何をみよう?

2011/01/23

rails2.3.8 アプリ作成手順

いつも忘れるのでメモしておく。
ここでは、sqlite3を使用する場合。

1.sqlite3 のインストール
   $ sudo apt-get install sqlite3
   $ sudo apt-get install libsqlite3-dev

2.sqlite3 のgemインストール
   $ sudo gem install sqlite3-ruby

3.rails app 作成
    $ rails -d sqlite3 [appname]
    $ cd [appname]
    $ ruby scripts/server