nitsujiの日記 RSSフィード

2007-07-02

コントローラからのモデルの参照 01:22  コントローラからのモデルの参照 - nitsujiの日記 を含むブックマーク はてなブックマーク -  コントローラからのモデルの参照 - nitsujiの日記  コントローラからのモデルの参照 - nitsujiの日記 のブックマークコメント

よくわかってないんだけど、今日気づいたことで。

class StoreController < ApplicationController

  def index
    @products = Product.salable_items
  end

  private

  def find_cart
    session[:cart] ||= Cart.new
  end
end

Railsのこんなコードがあって、おもむろにProduct.salable_itemsとかCart.newとかしてるけどそれを使いますよーって宣言みたいのがどこにもない!

Perl(Catalyst)だとどうか。

package Depot::Controller::Store;

use strict;
use warnings;
use base 'Catalyst::Controller';

sub index : Private {
  my ($self, $c) = @_;
  $c->stash->{products} = $c->model('DBIC::Product')->salable_items;
}

sub find_cart : Private {
  my ($self, $c) = @_;
  $c->session->{cart} ||= $c->model('Cart')->new;
}

こうかな。まあモデルクラスをuseしたりとかはないけど$c->modelを介してモデルクラスアクセスする。

Railsでも裏でこういうことを暗黙的にやってくれてるのかなあ。

それにしてもRubyコードは余分なものがなくてキレイでいいですね。

Perlはuse strict;とか、引数を自分で取ってきたりとか、必ず書かなきゃ行けないコードがあるからゴチャゴチャな印象が。特にこうやって並べてみると顕著にわかる。

---

つーか、こうやって書いてからまた気づくわけだけど、sessionも同じこと言えるし。

本読んでコード書いて一瞬わかった気になるけど、ちょっと突っ込んで考えると途端にわかんなくなるな。

trotrtrotr2007/07/07 14:10RailsはActiveSupportが裏でごにょごにょ

トラックバック - http://rubyist.g.hatena.ne.jp/nitsuji/20070702

2007-06-26

Validation 01:43  Validation - nitsujiの日記 を含むブックマーク はてなブックマーク -  Validation - nitsujiの日記  Validation - nitsujiの日記 のブックマークコメント

railsではvalidationをモデルで行うようになっています。その理由はrails本によれば

モデル層は、コードの世界とデータベースの間に立つ門番です。このアプリケーションでは、モデルを通らずにデータベースから情報を取り出したり、データベース情報を保存したりすることはできません。

ということのようです。

いままでvalidationはコントローラ的な場所でやってきたのでちょっと違和感がありますが、この理由はもっともだと思いました。

また、Validator rails pluginというのがあり、validationをモデルから切り離すことができるようですがどのくらいメジャーなのかよくわかりませんでした。

Nowhere Near

あと日本語化はActiveHeartというプラグインを使うといい感じです。すごい簡単!

Rubyist Magazine - RubyOnRails を使ってみる 【第 5 回】 ActiveHeart

---

まだ経験が浅いせいか、古い情報マイナー情報メジャー情報というのをパッと見分けられずに苦労してます。。だんだん慣れていって空気というか感覚がわかるようになるといいんだけど。

トラックバック - http://rubyist.g.hatena.ne.jp/nitsuji/20070626

2007-06-25

Vimプラグインを入れる 22:08  Vimのプラグインを入れる - nitsujiの日記 を含むブックマーク はてなブックマーク -  Vimのプラグインを入れる - nitsujiの日記  Vimのプラグインを入れる - nitsujiの日記 のブックマークコメント

vim-ruby

$ sudo gem install vim-ruby
$ vim-ruby-install.rb

ruby-matchit

http://vim.sourceforge.net/scripts/script.php?script_id=290

ruby-matchit.vimダウンロードして~/.vim/ftplugin/rubyに置く。

rails.vim

http://www.vim.org/scripts/script.php?script_id=1567

rails.zipダウンロードして~/.vim解凍

project.vim

http://www.vim.org/scripts/script.php?script_id=69

project-1.4.1.tar.gzをダウンロードして~/.vim解凍

ファイルを開いてる時に:Rprojectでなんか表示される。

使い方はまだよくわからない。

トラックバック - http://rubyist.g.hatena.ne.jp/nitsuji/20070625

2007-06-24

Vim日本語入力 02:21  Vimの日本語入力 - nitsujiの日記 を含むブックマーク はてなブックマーク -  Vimの日本語入力 - nitsujiの日記  Vimの日本語入力 - nitsujiの日記 のブックマークコメント

railsHello, WorldやろうとしたらMac OS Xvim日本語入力できなくていきなり躓いた。

なんか日本語入力すると???とかになる。で、なんとか解決したのでメモ

vimはたぶんデフォルトで入っていると思われる6.2というやつです。

答え。~/.inputrcに次の3行を書く。

set convert-meta off
set input-meta on
set output-meta on

.inputrcというのはreadlineの設定ファイルのようです。macman readlineとしても「マニュアルない」って言われるのでLinuxmanした。

       convert-meta (On)
              If set to On, readline will convert characters with the eighth bit set to  an  ASCII  key  sequence  by
              stripping the eighth bit and prefixing it with an escape character (in effect, using escape as the meta
              prefix).
       input-meta (Off)
              If  set  to  On, readline will enable eight-bit input (that is, it will not clear the eighth bit in the
              characters it reads), regardless of what the terminal claims it can support.  The name meta-flag  is  a
              synonym for this variable.
       output-meta (Off)
              If  set to On, readline will display characters with the eighth bit set directly rather than as a meta-
              prefixed escape sequence.

全部デフォルトと逆にするのね。

意味はあまりわかっていません。

---

ググリ始めたとき、最初にUsing Japanese on Vim for Mac OS Xを読んで、この通りになってるのに全然ダメ!キーッ!ってなったけど無事解決できてぐっすり眠れそうです。タイトル的には完璧っぽいのにこんなに重要なことを省いてはいけないと思います。

---

かとう2.7 改め 2.9

---

追記(2007/06/25):

あと.profile環境変数LANGを設定しないとダメみたいでした。

export LANG=ja_JP.UTF-8

MySQLを動くようにする 19:24  MySQLを動くようにする - nitsujiの日記 を含むブックマーク はてなブックマーク -  MySQLを動くようにする - nitsujiの日記  MySQLを動くようにする - nitsujiの日記 のブックマークコメント

この前MacPortsMySQLインストールしたんだけど、実はまだ動かしていませんでした。

とりあえず動くように。

$ sudo -u mysql /opt/local/lib/mysql5/bin/mysql_install_db

mkdirできないとかいろいろ言われるので、-u mysqlなしでやってみたり

$ sudo chown -R mysql:mysql /opt/local/var/db/mysql5
$ sudo chown -R mysql:mysql /opt/local/var/run/mysql5

とかした。

自動起動設定はせず、手動で

$ sudo /opt/local/lib/mysql5/bin/mysqld_safe &

で起動して確認。

$ mysql5 -uroot -A

大丈夫そう。停止はこれで。

$ mysqladmin5 -uroot shutdown

また、my.cnfは/opt/localに置けばよさげです(dataディレクトリに置いたらdeprecatedだって言われた)。文字コードデフォルトでutf8になっているようだけどとりあえずこれだけ書いたおいた。

[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

あと、Max OS X大文字/小文字を区別するらしいので注意(Windowsと同じ)。lower_case_table_namesのデフォルト値は2です(Linuxは0、Windowsは1)。

---

no title

MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.2.2 識別子の大文字と小文字の区別

MySQLライブラリのこと 16:13  MySQLのライブラリのこと - nitsujiの日記 を含むブックマーク はてなブックマーク -  MySQLのライブラリのこと - nitsujiの日記  MySQLのライブラリのこと - nitsujiの日記 のブックマークコメント

Rails本のP25の注釈に、

大量のデータ処理が必要なアプリケーションMySQLを使って本番環境で稼働させる場合には、おそらく、よりパフォーマンスの優れた低レベルMySQLインターフェースライブラリインストールが必要になるでしょう。

って書いてあるんだけど、これはRubyベースかCベースかってことなんでしょうかね。

ググってみたらRubyist Magazine - RubyOnRails を使ってみる 【第 1 回】が見つかって、

MySQLRuby 拡張ライブラリとしては RAA:mysql-rubyRAA:ruby-mysql というふたつの (互換性のある) ライブラリがあります (どちらもとみたさんによって書かれました)。 MySQL/RubyC言語で実装されたライブラリであり mysql.so が本体です。存在しない場合はインストールする必要があります。 一方、Ruby/MySQL はすべて Ruby で実装された (pure ruby) ライブラリであり、ActiveRecord には lib/active_record/vendor/mysql.rb として含まれています。

って書いてあるのでこれのことかな。

覚えておこう。

インストール 16:07  インストール - nitsujiの日記 を含むブックマーク はてなブックマーク -  インストール - nitsujiの日記  インストール - nitsujiの日記 のブックマークコメント

なにはともあれインストールから。

Mac OS Xを使ってるのでRuby 1.8.2がすでに入っているのですが、いくつか難点があるようなのでMacPortsインストールしました。バージョンは1.8.6になりました。

$ sudo port install ruby
$ ruby -v
ruby 1.8.6 (2007-03-13 patchlevel 0) [powerpc-darwin8.9.0]

次にRubyGemsインストール

no titleから0.9.4をダウンロードしてインストール

$ sudo ruby setup.rb
$ gem -v
0.9.4

そしてRailsインストール

$ sudo gem install rails --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-1.2.3
Successfully installed rake-0.7.3
Successfully installed activesupport-1.4.2
Successfully installed activerecord-1.15.3
Successfully installed actionpack-1.13.3
Successfully installed actionmailer-1.3.3
Successfully installed actionwebservice-1.2.3
Installing ri documentation for rake-0.7.3...
Installing ri documentation for activesupport-1.4.2...
Installing ri documentation for activerecord-1.15.3...
Installing ri documentation for actionpack-1.13.3...
Installing ri documentation for actionmailer-1.3.3...
Installing ri documentation for actionwebservice-1.2.3...
Installing RDoc documentation for rake-0.7.3...
Installing RDoc documentation for activesupport-1.4.2...
Installing RDoc documentation for activerecord-1.15.3...
Installing RDoc documentation for actionpack-1.13.3...
Installing RDoc documentation for actionmailer-1.3.3...
Installing RDoc documentation for actionwebservice-1.2.3...
$ rails -v
Rails 1.2.3

いちおう動くことを確認。

$ rails demo
$ cd demo
$ ruby script/server

ブラウザでlocalhost:3000にアクセスしてちゃんと動いてることを確認しました。

Railsはじめました。 14:52  Railsはじめました。 - nitsujiの日記 を含むブックマーク はてなブックマーク -  Railsはじめました。 - nitsujiの日記  Railsはじめました。 - nitsujiの日記 のブックマークコメント

Rubyのことはよく知りませんがとりあえずRailsから入門しようと思います。

ひとまずRailsによるアジャイルWebアプリケーション開発を買いました。

Rubyの本はRubyist Magazine 出張版 正しいRubyコードの書き方講座―RubyistのRubyistによる、Rubyistとそうでない人のためのに続けて2冊目です。

なんか変な順番という気がしないでもないですが。

ManMan2012/10/15 23:25Absotulely first rate and copper-bottomed, gentlemen!

ctjnboatyactjnboatya2012/10/16 21:06TzUQQc <a href="http://bawlpmzxvoro.com/">bawlpmzxvoro</a>

anxmxbyanxmxby2012/10/19 13:26Vbzn7a , [url=http://ohvdyqasmgne.com/]ohvdyqasmgne[/url], [link=http://jijclmzufgcv.com/]jijclmzufgcv[/link], http://bkxauhdqyvoy.com/

anxmxbyanxmxby2012/10/19 13:26Vbzn7a , [url=http://ohvdyqasmgne.com/]ohvdyqasmgne[/url], [link=http://jijclmzufgcv.com/]jijclmzufgcv[/link], http://bkxauhdqyvoy.com/

dzlswvonmdzlswvonm2012/10/20 00:55t2OUAq <a href="http://xdoyaopahnwa.com/">xdoyaopahnwa</a>