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

必要なパッケージをインストールする たぶん、このインストールだけで済むはず。 sudo apt-get install libqtwebkit-dev xvfb ttf-kochi-mincho-naga10 ttf-kochi-gothic-naga10 入れている物は、 libqtwebkit-dev qtwebkitの開発用モジュール Qtはデスクトップと組込み開発向けのクロスプラットフォームアプリケーション開発フレームワーク らしい xvfb 仮想フレームバッファ ttf-kochi-m ...

Eclipse, git, Ruby on Rails メモ

Aptana Studio 3でEGitを入れているのに Aptana Studio 3でインストールされるPortableGitが優先されてしまう問題 ですが Preferencesの設定の中にある - という所が二つあると思います。 これは、Aptana Studio 3が内包しているPortable Gitの設定と、EGitの設定が両方出てきているという事です。 で、EGitの方を優先で使いたい場合ですが - のサブオプションがある方がEGitで、サブオプションがない方がPortableG ...

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) # => 12,345,678.05 number_w ...

Ruby, Ruby on Rails メモ

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

Ruby on Rails メモ

セッションIDを得るには session.session_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 "バッチファイル" というように、loadに変えると、そのバッチ処理が都度ロードされるので テストを実行しているプ ...

Ruby on Rails メモ

RailsのActiveRecordは、updated_atとcreated_atカラムがある場合、created_atには新規作成時、updated_atは新規と更新時に自動で日付が設定されます。 普段はこの動きで便利なんですが テストをする時などにupdated_atを操作したりしたい。 そんなときは以下のように書けばupdated_atに自動で日付が設定されるのを防ぐ事が出来る。 ActiveRecord::Base.record_timestamps = false record.sav ...

Ruby on Rails メモ, web

Railsでsend_fileというメソッドがある これは、ファイルなどをそのまま返す場合に使ったりするが これを使うとRailsのメモリ使用量が増加していく。 2.1でこの現象が出るが 2.3とかもかも? なんかメモリを解放してないっぽい感じですが、これに関しては、ほかの方が調べてたりするので深く調べないことにする。 で、解決方法は、x_sendfileを使うのがスマートな気がするので、これを採用する。 導入手順 apacheにmod_xsendfileを組み込む wget sudo apxs ...

Ruby on Rails 3 Tips, Ruby on Rails メモ

Railsで日付処理は、意外と簡単に出来たりする。 1日前 1.days.ago 1日後 1.days.from_now 1ヶ月前 1.months.ago 1ヶ月後 1.months.from_now 1年前 1.years.ago 1年後 1.years.from_now また、本日の開始日時として、たとえば 2011-10-01 00:00:00 という情報を取りたい場合 Date.today.beginning_of_day 逆に 2011-10-01 23:59:59 という情報を取り ...

Ruby on Rails メモ

redmineにはwikiがついてます。 基本Textile形式で記述する物なので 表を作るときは |名前|年齢|趣味| |太郎|23|ギター| という感じで書きます。 が、たとえば趣味が複数あって、途中で改行させたいといった場合に、<br/>タグとかが使えません。 これは、redmineが採用しているライブラリ「redcloth3」の中でbrを許可しないようになっているからです。 どうしても表の中で改行を使いたい場合、この「redcloth3」ライブラリを変更する必要があります。 ...

Ruby on Rails メモ

モジュールがインクルードされているか it "should include AuthenticatedSystem" do   controller.class.included_modules.should include(AuthenticatedSystem) end 隠したいパラメータがフィルターされているか it "should filter credit_cards" do   controller.send(:filter_parameters, 'credit_card' = ...

Ruby on Rails メモ

usersテーブル hobbysテーブル があり、 usersテーブルの方に has_many :hobbys hobbysテーブルの方に belongs_to :user が指定されているときに user.hobbys.collect{|c| c.id} とすれば、hobbysのID一覧が得られる が、 user.hobby_ids とすれば、idの一覧を簡単に得られる

Ruby on Rails メモ

このワーニング 「warning: peer certificate won’t be verified in this SSL session」 は、Net::HTTPライブラリを使用してSSLなページを取得したときに出力される これを止めるには Net::HTTPを使用するときに「verify_mode」を設定する require 'net/https' https = Net::HTTP.new("gendosu.jp", 443) https.use_ssl = true https.v ...

Ruby on Rails メモ

Ruby on Railsの本番実行環境として定着したpassengerです。 では、インストールをしてみます。 まず、passengerをインストールするために必要なモジュール Ruby 基本中の基本 rubygems gemでインストールするので、こちらも基本 あとは、以下のライブラリ群が必要になります。 GNU C++ compiler Curl development headers with SSL support OpenSSL development headers Zlib de ...

Ruby on Rails 3 Tips, Ruby on Rails メモ

Railsで… ホスト名(gendosu.jpという感じ)を得る request.host ホスト名:ポート番号(gendosu.jp:80という感じ)を得る request.host_with_port

Ruby on Rails 3 Tips, Ruby on Rails メモ

Rails 2.*系のプロジェクトで、rakeコマンドをたたくと、 rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+) というエラーが発生することがある。 このエラーは rake のバージョンが新しすぎるのが原因。 基本的にRails3.0.5より前のRailsでは、rakeのバージョンは0.8.7を使う。 新しいrakeが入っている場合 gem uninstall rake gem install rake - ...

Ruby on Rails メモ

Rails 3からActiveModelが追加されたが、これはどーいうものかというと、 ActiveRecordはテーブルのデータを操作するのに対して ActiveModelはテーブルの存在しないデータを操作するために使用する。 と思う。 ActiveModelの肝は大きくみて4つくらいあるらしい。 アトリビュート コールバック 変更記憶 バリデーション ほかにもいくつか楽しそうな物はあるが、とりあえず、この4つについてREADMEから情報を拾ってみたいと思います。 アトリビュートは、モデル内に ...