Ruby on Rails 4, Ruby on Rails メモ, ubuntu

必要なパッケージをインストールする

たぶん、このインストールだけで済むはず。

入れている物は、
libqtwebkit-dev
qtwebkitの開発用モジュール
Qtはデスクトップと組込み開発向けのクロスプラットフォームアプリケーション開発フレームワーク
らしい
xvfb
仮想フレームバッファ
ttf-kochi-mincho-naga10 ttf-kochi-gothic-naga10
日本語フォン ...

Eclipse, git, Ruby on Rails メモ

Aptana Studio 3でEGitを入れているのに
Aptana Studio 3でインストールされるPortableGitが優先されてしまう問題

ですが

Preferencesの設定の中にある

という所が二つあると思います。

これは、Aptana Studio 3が内包しているPortable Gitの設定と、EGitの設定が両方出てきているという事です。

で、EGitの方を優先で使いた ...

Ruby on Rails メモ

Ruby on Railsで数値を整形する場合、ActionViewには便利なヘルパーがあります。

number_with_delimiter
です。

number_with_delimiter(12345678) # => 12,345,678
number_with_delimiter("123456") # => 123,456
number_with_delimiter(12345678.05

Ruby, Ruby on Rails メモ

Rubyで「&」などの文字参照をデコードするには
CGI.unescapeHTML(‘test&リリース’)
とすると
test&リリース
という感じで変換してくれる。

Ruby on Rails メモ

セッションIDを得るには

とする。

Ruby, Ruby on Rails メモ

remote_tableはリモート(またはローカル)にあるExcel、CSVファイルなどを読み込んでシステムで扱えるようにするRubyライブラリです。

rubygemsでインストールします。

 

Ruby on Rails メモ

Controller内でHelperに定義したメソッドを使うには
ApplicationController.helpers.my_method(text)
という感じで書けば使用できる

Ruby on Rails メモ

rspecでUserAgentのテストをする場合の、テストデータの設定
request.stub!(:user_agent).and_return(‘FeedBurner/1.0’)
get ‘search'
とする

Ruby on Rails 3 Tips, Ruby on Rails メモ

バッチ処理として書いたrbファイルをテストする場合

テストケース内で

system("ruby バッチファイル")

としても良いが

たとえばTimecopで日付を固定してテストする場合には具合が良くない。

バッチのプロセスが別プロセスで動くため、Timecopの設定がバッチに反映されない。

なので

systemで呼び出している部分を

load "バッチファイル&qu ...

Ruby on Rails メモ

RailsのActiveRecordは、updated_atとcreated_atカラムがある場合、created_atには新規作成時、updated_atは新規と更新時に自動で日付が設定されます。

普段はこの動きで便利なんですが

テストをする時などにupdated_atを操作したりしたい。

そんなときは以下のように書けばupdated_atに自動で日付が設定されるのを防ぐ事が出来る。

Ruby on Rails メモ, web

Railsでsend_fileというメソッドがある

これは、ファイルなどをそのまま返す場合に使ったりするが

これを使うとRailsのメモリ使用量が増加していく。

2.1でこの現象が出るが 2.3とかもかも?

なんかメモリを解放してないっぽい感じですが、これに関しては、ほかの方が調べてたりするので深く調べないことにする。

で、解決方法は、x_sendfileを使うのがスマートな気がするので、これを採用する。

導入手順apach ...

Ruby on Rails 3 Tips, Ruby on Rails メモ

Railsで日付処理は、意外と簡単に出来たりする。

1日前

1日後

1ヶ月前

1ヶ月後

1年前

1年後

また、本日の開始日時として、たとえば

2011-10-01 00:00:00

という情報を取りたい場合

逆に

2011-10-01 23:59:59

という情報を取りたい場合

月初を得る ...

Ruby on Rails メモ

redmineにはwikiがついてます。

基本Textile形式で記述する物なので

表を作るときは

という感じで書きます。

が、たとえば趣味が複数あって、途中で改行させたいといった場合に、<br/>タグとかが使えません。

これは、redmineが採用しているライブラリ「redcloth3」の中でbrを許可しないようになっているからです。

どうしても表の中で改行を使いたい場合、この「redcloth3」 ...

Ruby on Rails メモ

モジュールがインクルードされているか隠したいパラメータがフィルターされているかBefore filtersレスポンスコードauthenticity_tokenのチェックをスタブでtrueにする

Filtered parameters

Ruby on Rails メモ

usersテーブル

hobbysテーブル

があり、

usersテーブルの方に

has_many :hobbys

hobbysテーブルの方に

belongs_to :user

が指定されているときに

user.hobbys.collect{|c| c.id}

とすれば、hobbysのID一覧が得られる

が、

user.hobby_ids

とすれば、i ...

Ruby on Rails メモ

このワーニング
「warning: peer certificate won’t be verified in this SSL session」
は、Net::HTTPライブラリを使用してSSLなページを取得したときに出力される

これを止めるには

Net::HTTPを使用するときに「verify_mode」を設定する

とする

「verify_mode」を設定するときは、「use_ssl」は必須

Ruby on Rails メモ

Ruby on Railsの本番実行環境として定着したpassengerです。

では、インストールをしてみます。

まず、passengerをインストールするために必要なモジュール

Ruby

基本中の基本

rubygems

gemでインストールするので、こちらも基本

あとは、以下のライブラリ群が必要になります。

GNU C++ compiler
Curl development headers w ...

Ruby on Rails 3 Tips, Ruby on Rails メモ

Railsで…

ホスト名(gendosu.jpという感じ)を得る

ホスト名:ポート番号(gendosu.jp:80という感じ)を得る

Ruby on Rails 3 Tips, Ruby on Rails メモ

Rails 2.*系のプロジェクトで、rakeコマンドをたたくと、

というエラーが発生することがある。

このエラーは rake のバージョンが新しすぎるのが原因。

基本的にRails3.0.5より前のRailsでは、rakeのバージョンは0.8.7を使う。

新しいrakeが入っている場合

と実行すればよい

Ruby on Rails メモ

Rails 3からActiveModelが追加されたが、これはどーいうものかというと、

ActiveRecordはテーブルのデータを操作するのに対して

ActiveModelはテーブルの存在しないデータを操作するために使用する。

と思う。

ActiveModelの肝は大きくみて4つくらいあるらしい。

アトリビュート
コールバック
変更記憶
バリデーション

ほかにもいくつか楽しそうな物はあるが、とりあえず、こ ...