Ruby on Rails(2以前)

不具合

  • ruby 1.8.7 p249 を入れると、Railsの実行ログに日本語を出力する場合に日本語が化ける
    ruby 1.8.7 p249
    にはStringのinspectにバグがあり、ログ出力などでpを使った場合に日本語が化けるようである
  • windowsな環境で、Railsプロジェクトのパスに日本語が含まれる場合、もしかしたらRailsプラグインを認識しない事があるかもしれない
  • windowsでMySQL5.1を入れると、Railsから接続できないっぽい
    おそらく、gemでインストールするmysqlアダプタがMySQL5.1に対応していない
    筆者の解決方法は、coLinuxでlinuxを起動し、共有フォルダとしてrailsのプロジェクトを参照して
    linux内に実行環境を作る
    windows上ではeclipseで編集&SVNコミット
    ※最近、gemのmysqlが更新され、2.8.1を使用できるようになった
    このバージョンでならMySQL5.1が使用できるかもしれない

新着メモ

Railsプラグイン

rubyプラグイン

Ruby本体に関する情報

技術情報 – Ruby

メモ(2.3.4)

  • seeds
    初期データの設定
  • [[プラグインのI18n]]
    プラグインで定義したlocaleファイルを自動的に参照

メモ(2.3系)

  • [[Rails 2.3.x更新情報]]
  • Nested Attributes
  • Nested Transactions
  • Templates
    Allows your new skeleton Rails application to be built your way with your default stack of gems, configs, and more.
  • Engines
    Share reusable application pieces complete with routes that Just Work, models, view paths, and the works.
  • Rack
    Rails now runs on Rack which gives you access to all the middleware goodness.
  • Metal
    Write super fast pieces of optimized logic that routes around Action Controller.
  • Nested forms
    Deal with complex forms so much easier.

メモ(2.2系)

メモ(2.1系)

  • [[依存するgemのファイルを指定する]]
  • [[form_forの中身をpartialで書く]]
  • [[Rails 2.1情報]]
  • active_scaffold 1.1.1 は起動出来ない
  • redmine 0.7.1 は起動できない
    rake rails:updateを実行すれば起動できるようだ

メモ(2.0系)

  • default_url_options[:host]
    url_for(:only_path => false)や、root_urlなどを使う(フルパスのURLを取得する)場合、default_url_options[:host] = ‘ホスト名[:ポート]’を設定しておかないと、エラーとなる
    どこに書くのがいいのか、要調査 
  • [[named_scope]](2.1.0以上でした)
  • [[Rails 2.0でのroute.rb]]
  • CSRF対策を一部のアクションだけ解除
    Rails2.0だと、外部からpostリクエストを受け付けると、InvalidAuthenticityTokenが発生するが、その場合に
    POSTで受けたいけどCSRF対応を解除して受け付けたい場合、
    コントローラの頭に 

    なんて感じでチェックをスルーさせたいアクションを記述すると、そのアクションに対しては外部からPOSTしても例外にならない
  • [[Rails 2.0でatom]]
  • [[Rails 2.0でwith_scopeを使うには]]
  • [[Rails2AndMySQL|Rails 2.0時代のMySQLについて(gem install mysql)]]
  • [[Rails20|Rails 2.0情報]]

メモ

  • [[tech:Colinux-coLinuxでRuby_on_Railsの実行環境を作成]] を参照
    ※ホストOS側のフォルダを共有してRailsを起動した場合に、ファイルシステムでセッションを管理すると、正常に動作しない
    coLinux内のゲストOSでsambaを使用して、そこにあるRailsプロジェクトをホストOS側のeclipseで参照する事で 解決?
  • [[フォームの項目をJavaScriptで、シリアライズする]]
  • consoleのリロード
  • [[トランザクション]]
  • [[一つのフォームで複数モデルを対象に更新したい場合]](fields_for)
  • [[クライアントIPの取得方法]]*
  • [[RadRailsでのデバッグ]](ruby-debug-ide)
  • [[capture and content_for]]
    viewの一部をテンプレート化出来る? 要調査
  • [[ruby-debug-ide]]
  • [[warning toplevel constant]]
  • [[テキストデータ内のURLを自動でリンクにする方法]]
  • [[404.htmlの出力の仕方]]
  • [[カスタムフォームビルダー]]
  • [[datetime_selectの書式を日本語化する]]
  • [[form_forのブロックないで使うフォームヘルパーをオーバーライド]]
  • [[日付のフォーマットをデフォルト設定]]

* *マイグレーションで直接SQLを実行させる*
<pre>
execute(<<-SQL)
insert into articles select * from old_articles
SQL
</pre>

* *[[モジュール構造を使う]]*
app/model/article.rb => app/model/blog/article.rb

* *[[GMailを使ってActiveMailerでメール送信]]*

* *[[無限スクロール]]*
ページが複数ある画面で、画面の一番下までスクロールすると、自動的に次のページを読み込み、最下部に追加してくれる機能
検索結果なんかのリストで、次のページへの移動リンクをクリックする必要が無くなる。

* *[[JSON]]*

* *[[railsのバージョンを固定する]]*(rake rails:freeze:gems)

* *[[初期データ登録タスク]]*

* *バージョンを指定してrailsプロジェクトを作成*
<pre>
rails _1.2.6_ my_proj
</pre>

* *attr_accessible*
モデルでattr_accessibleを指定した場合、それ以外のカラムはプロテクトに設定される
カラムとして、:name, :email, :crypt_passがあるとしたら
<pre>
attr_accessible :name, :email
</pre>
とすると、:crypt_pathはプロテクトにされて、外部から参照、更新できない

* *[[active_recordで複数テーブルをまたいだジョインの仕方]]*

* *[[ログレベル]]*

* *[[observerとは]]*

* *[[RailsのパフォーマンスアップTips]]*

* *[[Railsのページキャッシュ]]*

* *current_pageチェック*
current_page?(:controller => ‘top’, :action => ‘index’)
でチェックできる

* *[[WSSE認証]]*

* *[[HTTP BASIC認証]]*

* *[[rakeタスクの中で、別のタスクを呼び出すには]]*

* *[[active_heartなどerror_messages_forヘルパーを上書きする日本語化で不具合がある場合]]*
active_scaffoldとactive_heartを入れてる場合に、active_scaffolの日本語化が優先されるらしく
うまく日本語化されない

* *[[Railsでcaptcha]]*

* *[[現在のテーブルのデータをyml形式ではき出す]]*

* *”Ruby on Railsで携帯からファイルのアップロード(+送信者認証)”:http://koress.jp/2007/09/ruby_on_rails_3.html*

* *[[renderでコレクションのインデックスを取得]]*

* *[[renderのcollectionに与えるべき配列の一つだけをrenderに渡したい]]*

* *[[テキストが長い場合に切断]]*

* *[[HTMLのタグ削除]]*

* *[[rubyでMechanize]]*

* *[[IfModifiedSince|If-Modified-Since]]*

* *[[JasperReports|JasperReportsをRailsから呼び出す]]*
javaで動作し、PDF,xml,xlsなどのフォーマットで出力出来るツール

* *[[JasperReports_old|JasperReportsをRailsから呼び出す(OLD)]]*

* *[[RailsXls|Railsでexcel出力するプラグイン]]*
javaのPOIライブラリを使う

* *[[RenderComponent|render_component]]*
%{color:red}処理が重くなるので、使用しない方向で%

* *[[RakeVersion|rakeのバージョンを指定して実行したい]]*
rakeコマンド実行時に以下のメッセージが出る場合などに、rakeのバージョンを指定する必要がある
<pre>
undefined method `last’ for {}:Hash rake db:migrat
</pre>

* *[[SSB|携帯画面エミュレート?]]*

* *[[NullCheck|nullチェック]]*

* *[[RunProduction|productionで実行]]*

* *[[RunProductionForMac|productionで実行 for Mac OS X]]*

* *[[ActiveRecordTips|ActiveRecordのsaveメソッド]]*

* *[[EditTreeDataOnRails|RailsでTree構造のデータを手軽に編集するには]]*

* *[[SortableElement|sortable_element]]*

* *[[RelativeUrlRoot|開発時はURLのルートで開発するが、本番はサブURLでデプロイする場合(relative_url_root)]]*

* *[[Validation|Validation]]*

* *[[HyperEstraier|Hyper Estraier(全文検索エンジン)をRailsで使う]]*

* *[[Test|テスト]]*

* *[[FunctionalTest|コントローラのテスト]]*

* *[[OpenId|open id]]*

* *[[OverRide|オーバーライド]]*

* *[[HHelper|Hヘルパー]]*

* *[[Gruff|Gruff(rubyでグラフを書く)]]*

* *[[Sparklines|Sparklines(Railsでグラフを書く)]]*

* *[[Delimiter|数値項目のカンマ区切り]]*

* *[[Encoding|データベースの文字コード設定]]*

* *[[ActionWebService|AWS(ActionWebService)とは]]*

* *テーブルの~_idカラムにインデックスを設定すると速度が上がる*

* *[[ErrorPage|独自のエラー画面表示処理]]*
rescue_action_in_public(exception)
rescue_action_locally(exception)

* *[[ActiveResource]]*

* *[[SQLite|SQLiteについて]]*

* *[[Rake|rakeタスク]]*

* *[[BaseSend|libに追加したメソッドをhelper,viewの中でも使用したい場合]]*

h3. メール関連

* *[[メール受信]]*

* *[[メール送信]]*

* *[[メール送信テスト]]*

webサーバ関連

* *[[tech:Passenger]]*(mod_rails)
*[[tech:apache]]* のモジュール
*[[tech:nginx]]* もサポート
Railsをapacheで直接動かすことが出来るようになる
** *[[x_sendfile]]*
apacheのモジュールつながりで、Railsで扱う画像ファイルを、直接apacheで処理させる事が出来る

* *[[Mongrel|mongrel]]*
** *[[MongrelOrLighttpd|mongrelとlighttpdの話]]*

* *[[tech:Lighttpd]]*
** *[[LighttpdConfInRailsProject|Railsプロジェクトごとにlighttpd.confファイルを持つやり方]]*
** *[[LighttpdForMac|lighttpdで起動 for Mac OS X]]*
** *[[tech:Lighttpd-Apacheを経由してlighttpdでCGIを動作させるには]]*

* *[[tech:Apache]]*

* *[[ログローテート]]*

便利ツール

* *[[DBDesigner|DBDesigner 4 Distributions]]*
データモデリング図を書くツール
データベースにテーブルを直接読みに行ける

* *[[tech:A5:SQL Mk-2]]*
DB Desinerと同じようなツール
データモデリング図を書くツール
データベースにテーブルを直接読みに行ける

開発環境

* Windows
** *[[windows:Ruby]]*
** *rubygems*
Windows版のOne-Click Installerの場合、rubygemsも同梱
** *[[Rails|Rails]]*
** *[[windows:MySQL]]*
** *[[windows:MySQL-rubyバインディング]]*
** *[[windows:SQLite3]]*
** *[[windows:SQLite3-rubyバインディング]]*
** [[Eclipse|eclipse]] と [[Aptana|Aptana Studio]]
または [[netBeans]]

* Mac OS X
** *[[mactiger:Ruby]]*
** *[[mactiger:rubygems]]*
** *[[Rails|Rails]]*
** *[[mactiger:MySQL]]*
** *[[mactiger:MySQL-rubyバインディング]]*
** *[[mactiger:SQLite3のインストール]]*
** *[[mactiger:SQLite3-rubyバインディングのインストール]]*

Ruby on Railsに関連するツール

* CMS(コンテンツ管理システム)
** *”Radiant CMS”:http://radiantcms.org/*
HPなどを手早く管理するには良いかもしれない。
Rails上に環境が作られるので、サポートツールという訳ではない
** *”Railfrog”:http://railfrog.com/*
Railfrogの特徴としては、なぜか本体としてはソフトウェアを提供せず、プラグインとして提供している点にある。
本体と切り離されているので、コマンド一つで導入できるというメリットがある。さらに次の予定としてgemで配布する方針も予定されている。
** *”Mephisto”:http://mephisto.stikipad.com/help/show/Installing+Mephisto*
** *”RCMS”:http://rcms.oopen.de/Home/*

* プロジェクトマネージメントツール
** *”ClockingIT”:http://www.clockingit.com/*

その他情報

* “MySQLで全文検索が早い方法”:http://www.tatamilab.jp/rnd/archives/000390.html

* “Ruby on Rails + Gruffを使って、11分で作る遺伝子発現データベース”:http://itoshi.tv/d/?date=20060506#p01

* “Ruby on Railsで作成されたSNS「SKIP」”:http://www.openskip.org/

* [[プロジェクトWikiテンプレート]]