2013-03-01から1ヶ月間の記事一覧

zsh入れたらrvmが死んだ

何もやる気が起きなかったのでzshを入れてみた。 .bashrcに書いてあったことをほぼすべてをzshに移植し、他のzsh設定はgehirn RS2に入っている.zshrcから丸コピーした。いい感じで移行できたのだけど、rvmをコマンドを使うと以下のエラーが出てきた。 $ rvm …

MacOS Xにpostgresql

Mac

Moutain Lion これでいけた http://sweng.web.fc2.com/database/postgresql/install-9.2-on-macosx.html

rails4で使える管理画面gemの今

Rails4で管理画面gemが使えるか調査してみた。結論から書くと全滅だった。 有名どころといえば、 typus adctive_admin rails_admin typus ルーティングでmatchで使っているようで以下のメッセージが出てジェネレートできなかった。かなしい。issueとかまでは…

よいコントローラーを作る

2009年Ruby会議で万葉の大場さんのセッションがやばい。 http://d.hatena.ne.jp/LukeSilvia/20090719/p1 今から4年前なのに今でも通用する。 @reports = Report.where('user_id = ?', @user.id).order('created_at ASC') ↓ @reports = @user.repoers.order('…

FullCalendarに祝日カレンダー追加できない

fullcalendar-rails (1.5.4.0) rails (3.2.11) gcalは2009のものカレンダープラグインのfullCalendar。カレンダーを表示するだけなら問題なかったけど、 祝日を追加しようとすると以下のエラーが通してくれなかった。 Uncaught TypeError: Cannot set proper…

画面の下にデバッグ情報を表示する

以下をGemfileに書いてbundle install。 gem 'rails-footnotes' これを使えば、パラメータを確認するのにcreateメソッドにbinding.pryを仕込む必要がなくなる。 参考記事 http://morizyun.github.com/blog/rails-footnotes-gem-ruby/

Herokuで動くRailsをSSLで

社内ツール(Railsアプリ)をHerokuで動かしている。それでこいつをSSLで動かしてセキュアアピールしたい。 ググると、どうやら*.herokuappドメインならデフォルトでhttpsで通信できるっぽい。 (本家の英文をフィーリングで読んだのと実際にhttpsで接続できた…

rails consoleでpry使いたい

Rails3 rails consoleを叩くとpryじゃないじゃねーかとさっき気がついた。 Gemfileに以下を追加してbundle installすればrails consoleでpryが立ち上がる。 gem 'pry-rails' binding.pryする時のpryとは別だったの今気がついた。 記事 http://shirusu-ni-tar…

配列で同じ要素順同士を加算する

ruby-1.9.3-p392 [1, 1, 1] + [3, 3, 3] || [4, 4, 4]としたい。 b = [1, 1, 1] [1, 3, 5].map.with_index{|a, i| a + b[i]} # => [2, 4, 6] [1, 2, 3].zip([1, 4, 3]).map{|s| s.inject{|s, e| s + e}} # => [2, 6, 6] 要素番号を指定するのRubyっぽくない…

link_toにGETパラメータをつける

Rails3 <%= link_to "excelで保存する", to_xls_years_path(user: 3, id: 2)) %> ↓ <a href="/years/to_xls?id=2&user=3">excelで保存する</a> controllerとactionをハッシュで渡す書き方はRails2のものっぽい。 参考記事 http://stackoverflow.com/questions/2711294/rails-link-to-with-block-and-g…

引数を省略する

ruby-1.9.3-p392時間操作系メソッドを書いていてテストしやすいものを書きたいし、中でDate.todayとかしたら使い回し出来なさそうというのが最近の悩みの種だった。 そこで引数を省略できればいいのになあということで調べた。 def cola args={} p args[:nam…

ActiverecordでColumnの別名をつける

Rails3属性名を見ただけで何が入っているかわかるように設計していくと、属性名が長ったらしくなるのは世の常。 でも実装も終盤になってくると時計と睨みつつも長い属性名を入力するのはしんどい。 そこで別名ですよ。 class Month < ActiveRecord::Base ali…

今日の日付の文字列を取得

Time.now〜〜 ではなくて Date.today がよい。 2.0.0-p0 :008 > Date.now NoMethodError: undefined method `now' for Date:Class from (irb):8 日付系ならnowメソッドあるあると思ったらDateクラスにはない。 一時期、Time.now.to_date.to_sとかやっていま…

controllerにバリデーションを書く

Rails3 if target_date.current_date_over? @timemachine.errors.add(:date, "を明日以降の日付で作成することはできません。" render :new end

非アクティブモデルのモデルを日本語化

Rails3ActiveRecordのモデルは、lang.ymlに以下の階層で書けば読み込まれる。 ja: activerecord: models: user: ユーザー report: 報告 attributes: report: property_hour: 資産 ActiveModelだと以下のようにすればよい。 ja: activerecord: models: user: …

Railsでクラス拡張

どこにおくのがベストなんやろと調べた。以下のコードをアプリケーションが読み込むタイミングあたりに仕込む。applicatipn.rbの中がベストなのだろうか。 Dir[File.join(Rails.root, "lib", "core_ext", "*.rb")].each {|l| require l } # lib/core_ext/str…

devise × rspecでundefined method `sign_in'

こんな泥沼な事例を体験したことないくらい泥沼。 Failure/Error: Unable to find matching line from backtrace NoMethodError: undefined method `env' for nil:NilClass Failure/Error: sign_in FactoryGirl.create(:user) NoMethodError: undefined meth…

テーブルと結びつかないモデルを作る

Rails3 コードを書いていると、自作オブジェクトの配列をテンプレートに渡せたら楽に呼び出せると思うことがあった。 今までは、ロジック内にStructクラスを作ってからドヤ顔をしていたのだけど、今朝modelディレクトリにActiveRecordと結びつかないモデルを…

capybaraを使ったインテグレーションテストでdeviseのログインをする

deviseを使っていると認証系の実装はすごく楽ができていいけど、どうしてもテストコードでは謎コードを書かないといけない。 そしてバージョンによって、ログイン状態を実現する書き方が違うっぽい。 環境 Rails3.2 capybara (2.0.2) factory_girl_rails (4.…

RequestSpecのひな形をジェネレートする

そろそろテストかかなきゃーと思けうどテスティングツールをインストールしたのは、controllerとかmodelを作った後なので、 ひな形が作成されていなくて他のプロジェクトからspecファイルをコピペしてくる経験は誰しもあるはず。>capybaraを使ったインテグ…

pryから抜けたい時

Rails3 rake db:seed実行後、100くらいのループ中にbinding.pryを仕込んでしまったことに気がつくも[Ctrl + c]では回避できなくてやばくなったけど以下を入力すればpryから脱出できる。 exit-program 参考記事 http://d.hatena.ne.jp/miyohide/20120412/1334…

コールバックをスキップ

Rails3 after_saveで呼んでいるその中でもsaveをしていてstack_deep連発。 コールバックでもコールバックが呼ばれるってことは冗長な流れになってるっていう警告な気がするけど気にしない。 以下でコールバックをスキップできる。 self.update_column(:month…

mecabのインストールでハマりました

gemのmecab-ruby(0.98)が入っているRailsアプリでbundle installをしようとすると以下のログが流れた。 Using mecab-ruby (0.98) from git://github.com/actindi/mecab-ruby-gem.git (at master) Gem::Installer::ExtensionBuildError: ERROR: Failed to bui…

capistranoを使って自分の環境で必要になった設定とかについて

メモ capistranoとは デプロイ自動化を目的に作られたツール。 主な機能は、 SSHで入ってデプロイに必要なコマンドを実行してくれる デプロイ中にコケたらロールバックしてくれる デプロイ実行した日時毎にディレクトリを作ってくれる 自分の環境で必要にな…

vagrantで仮想環境を複製する

環境を複製しておいてバックアップとか思い出にとっておきたいと思った。 環境 vagrant (1.0.7) 手順 (1)boxのエクポート (2)boxのインポート (3)Vagrantfileの初期化 (4)VM起動 (5)SSHで確認 (1)今まで使っていた仮想環境をエクスポート(パッケージ化)する …

この度、"$ sudo chmod 666 / "をしてしまいました

capistranoを使ってVMマシンにピコピコとデプロイの練習をしている時だった。 capisctranoのcap deployを実行すると正常に終わっていなくてロールバックしていた。 画面をよく見るとhome/rails/releaseへcdしようとしてerrorになっていた。 権限が原因なんじ…

rvmェ.....

(nginx + )Passengerをインストールする時、下記コマンドをうつのだけど、ここには大きな罠がある。 sudo passenger-install-nginx-moduleこのコマンド実行すると、passengerのパスが表示され、nginx.confに書き込むように指示される。 パスを見ると、マシン…

nginx + Passenger + Linuxを動かしてみた

お疲れさまです。ただ今、Herokuのありがたさとインフラの偉大さを大変噛み締めております。 環境 Linux debian 2.6.32-5-amd64 Phusion Passenger version 3.0.19 Passengerとは フルネームはPhusion Passengerで、あのApacheとあのnginxにあるモジュールの…

Passengerのインストールメモ

passengerとnginxを連携してRailsを動かそうとしたくてpassengerをインスコした時のメモ。 やってみると、宿題をすべてやらないと帰宅させてくれない教師並にしんどかった。 インフラ力なくてつらいです。 Linux debian 2.6.32-5-amd64 $ gem install passen…

Sunspotを使ったメモ

java製検索エンジンのSolrをRailsから使えるようにするgem。 https://github.com/sunspot/sunspot Solrのセットアップは簡単でJDKとSolrをインスコするだけでよい。 環境 Solr3.6 感想 Sunspotを使うにはSolrもそうだし検索エンジンの知識が必要な感じした。…