検索
検索
Sakakibara Hiroshi / 榊󠄀原 寛
文書の表示
以前のリビジョン
トレース:
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
[[ruby]] ---- ====== ruby の管理 (rvm) ====== 今時は rvm で管理する.rvm だけインストールしておいて,残りは適当に切替える. <code> # apt-get install ruby-rvm </code> ===== rvm コマンド ===== * rvm list known インストール可能な ruby パッケージのリストを表示 * rvm get head インストール可能な ruby パッケージリストをアップデートする * rvm reload アップデートされたパッケージリストを再読み込みする. * rvm install 1.9.2-p290 バージョン 1.9.2-p290 の ruby をインストールする. * rvm use 1.9.2 指定バージョンの ruby を利用する.ただし,patch level が変わるだけの時は,upgrade を使う. * rvm 1.9.2 --default 1.9.2 (patch level は関係ない) をデフォルトで利用するように設定. * rvm upgrade ruby-1.9.2-p180 ruby-1.9.2-p290 patch level をあげる. ===== rvm の動作 ===== * 今までのやりかたで行くと,/usr/share/ruby-rvm/environments/ruby-1.9.2-p290 というファイルに rvm use 1.9.2 を利用するための環境変数が書き込まれている.これを読み込むことで 1.9.2-p290 のパスが利用できるようになる. * 例えば,少しバージョンの違う別の環境変数が何回か読み込まれたりすると,読み込む先が混乱するのでうまく動作しなくなる可能性がある. ====== gem ====== ===== gem の動作 ===== * /usr/share/ruby-rvm/gems/ruby-1.9.2-p290/specifications/ 近辺に,gem (ruby のパッケージ)情報が含まれている.適当に消すと微妙に不整合が出るけど,最悪ここを消す. * invalid date format 見たいなのが出てきたら,とりあえず,bundle 経由で入れられたすべての gem を uninstall (shell の for とかで回すしかない)した後に,specification を削除して,再度インストールする. ===== gem コマンド ===== * gem list rvm で選択された環境にインストールされた gem の一覧が見られる. * gem uninstall <パッケージ名> uninstall する.ただし,実際に rm されるわけではないみたい.多分,どっかの meta データで論理的に削除しているだけ. * gem cleanup <パッケージ名> だぶっているパッケージを最新のみ残して,他のを削除する. * gem update <パッケージ名> パッケージ名 をアップデートする. ====== rails 3.x の構築 ====== * ruby 1.9.2-p180 だと SSL 関係で問題があるみたい.p290 にするべき.(no such file to load - openssl ) ==== freebsd で iconv の gem を入れる時 (2013/01/14) ==== * FreeBSD の iconv header は、/usr/local/ 以下にインストールされるため、gem install に以下のようなオプションを付けておく必要がある。 <code> gem install iconv -- --with-opt-dir=/usr/local/ </code> ---- 以下古い.rails 2.x 時代の記述 ====== 1. ruby 自体 ====== * [[http://www.ruby-lang.org/ja/man/html/]] * ruby 開発元ドキュメント。そこそこ見やすい。 ====== 2. cgi.rb ====== * [[http://www.tsukune.org/skk/a/doc/|cgi.rb rdoc on tsukune]] * [[http://www.ruby-lang.org/ja/man/html/cgi.html|cgi - Rubyリファレンスマニュアル]] ====== 3. WWW::Mechanize 関係 ====== * [[http://d.hatena.ne.jp/kitamomonga/20081209/kaisetsu_for_ver_0_9_ruby_www_mechanize|きたももんががきたん。]] * mechanize の使い方,結構良い感じ. ===== 3.1. Nokogiri ===== ページの構造解析をするモジュール * [[http://d.hatena.ne.jp/otn/20090509/p1|スクレイピングのためのNokogiri利用メモ]] ====== 4. activerecord ====== ruby の O/R マッパー * [[http://madeira.cc.hokudai.ac.jp/blog/articles/2008/07/03/use_only_activerecord|RubyのコードからActiveRecordだけを使う方法]] * 簡単な active record の使い方導入 * [[http://d.hatena.ne.jp/nakakoh/20080510/1210390013|ActiveRecordのfindメソッド]] * find メソッド(SQL の select 相当) の見易い使い方 * [[http://api.rubyonrails.org/|Rails Framework Documentation]] * Ruby on Rails 関係のAPI.ActiveRecord の API 詳細も. * [[http://ukstudio.jp/2007/10/activerecord/|UK STUDIO - ActiveRecord を使ってみる]] * 使ってみた系の記事.見易い. ====== 5. passenger for rails ====== * ports で rubygem-passenger を適当にインストール <code> % sudo passenger-install-apache2-module </code> * httpd.conf に以下を張り付ける (passengerのコマンドでも出てくるけど.) <code> LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.5 PassengerRuby /usr/local/bin/ruby18 </code> ====== 6. rails の設定 ====== (2.3 系列)\\ * rails は rest な設計を目指しているので,設置に関しては virtual host して,対象アプリケーションの URI がホスト名直下になるのがデフォルトになっている気がする. * 好きなディレクトリに配置するには,以下のようにする. * passenger(mod_rails)使用想定. <code> % cd somewhere % rails hoge && cd hoge % rake db:create % script/generate controller home index (home: コントローラ, index: 最初にアクセスされるべきアクション) % rm public/index.html % vi config/route.rb map.root :controller => "home", :action => "index" % cd /documentroot/xxx/ % ln -s /somewhere/hoge/public hoge % cd elsewhere % vi rails-config.conf RailsBaseURI /anywhere/xxx/hoge/ % vi /usr/local/etc/apache22/httpd.conf Include /elsewhere/rails-config.conf % sudo apache restart </code> * どうしても,passenger による rewrite は必要になってしまう.そこで,include ファイルをユーザ権利で書き換えられるようにしておくと,個人サーバレベルでは便利.(大規模な場合は知りません.) * apache の再起動がどうしても必要なのがうざい.どうにかして,設定ファイルの動的なリロードはできないんですかね. (2009/10/10) 参考サイト: * http://hwhack.blogspot.com/2008/10/passengermodrails.html * 「passenger(mod_rails) でバーチャルホストを使わない複数アプリケーション動作」virtual host を使わなくて良い方法なので,とても助かる. * http://www.goto.info.waseda.ac.jp/~wei/weiki/index.php?document%2F%BA%EE%A4%C3%A4%C6%B3%D0%A4%A8%A4%EB%20Ruby%20on%20Rails%20%28%A5%EA%A5%F3%A5%AF%BD%B8%29 * 「作って覚える Ruby on Rails」簡単な step by step が書いてあるので,start up には便利. ====== 7. rails アプリケーション作成のステップ ====== 大体以下のような感じ. <code> % cd どっか % rails testapp % cd testapp % vi config/route.rb ## 上の記述と同じ % vi config/environment.rb 2 行目辺り: RAILS_ENV = 'development' (開発モード:production => 公開用, development => 開発用) </code> (ここまで環境設定系) * ------ <del> % vi lib/tasks/db_setup.rake </del>\\ <del> env = 'development'</del>\\ <del> database = "bbs_#{env}"</del>\\ <del> require 'activerecord'</del>\\ <del> def connect</del>\\ <del> ActiveRecord::Base.establish_connection(:adapter => 'sqlite')</del>\\ <del> end</del>\\ <del> task :db_setup do</del>\\ <del> ActiveRecord::Schema.define do </del>\\ <del> connect</del>\\ <del> begin</del>\\ <del> create_database database</del>\\ <del> rescue</del>\\ <del> end</del>\\ <del> end</del>\\ <del> end</del>\\ <del> </del>\\ <del> task :db_clean do</del>\\ <del> ActiveRecord::Schema.define do </del>\\ <del> connect</del>\\ <del> end</del>\\ <del> drop_database database</del>\\ <del> end</del>\\ <del> (データベースファイル(hoge.dbとか)を touch するためのプログラム)</del>\\ <del> % rake db_setup </del>\\ (上記のやり方は,古いっぽい.)\\ <del>database.yml が存在する前提で,以下のコマンド.</del> database.yml は,プロジェクト作成時に以下の内容で作成される.デフォル トデータベースは rails 2.0 以上の場合,sqlite3. <code> # SQLite version 3.x # gem install sqlite3-ruby (not necessary on OS X Leopard) development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000 # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: adapter: sqlite3 database: db/test.sqlite3 pool: 5 timeout: 5000 production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000 </code> database の名前に,プロジェクトの名前をつけておくと良いかもしれない. このままでも問題なし. <del> % rake db:create RAILS_ENV=production </del> <del> % rake db:drop RAILS_ENV=development </del> [[http://japan.zdnet.com/blog/yoshimi/2008/01/11/entry_27016443/|rake の簡単まとめ]] (ここまでデータベースそのものの準備) * ------ <code> % script/generate model page % vi db/migrate/2009xxxxx_create_pages.rb class CreatePages < ActiveRecord::Migration def self.up create_table :pages do |t| t.column :title, :string t.column :created_at, :timestamp t.column :name, :string t.column :message, :text t.timestamps end end def self.down drop_table :pages end end % rake db:migrate </code> (ここまでデータベースの中身の設定) * ------ <code> % script/generate controller home index create (コントローラー名 => home, アクション名 => index, create) </code> あとは,それぞれ,以下のファイルにプログラム,HTML を書いていく. * app/controllers/home_controller.rb * app/view/bbs/*.html.erb
ruby.txt
· 最終更新: 2013/01/14 01:25 by
127.0.0.1
文書の先頭へ