昔の Ruby On Rails のブログ

注意! RoR2 とかの話です。今は更新していません。昔、はてなダイアリーで書いていたブログを移行しました。

Windows/Office武勇伝 <Surface Proが当たる! 開発者グループOPENキャンペーン>電話サポートでこんな相談受けました。相談者: 『ウィンドウを最大化すると画面に現れるけど、「元のサイズに戻す」と画面から消えてしまいます。』私: 「Alt + Space ⇒ M ⇒ …

2013年にやりたいこと 英語頑張る。TOEIC か英検を初体験する。

使用例

デフォルトフォルダ(app と lib)配下を grep grepr Foo 上記の大文字/小文字無視バージョン grepr -i Foo 対象フォルダを指定 grepr Foo config test

Rails のソースを grep するツール

rails プロジェクト配下のソースファイルを grep するコマンドです。5ヶ月ほど前の拾い物、 https://gist.github.com/189815/ が微妙に使いづらいので書き直してみた。 (まだまだ不備とかあると思うので、がしがし鍛えてやってください)ソースはここ ↓ https…

Timezone の扱い

http://railscasts.com/episodes/103-site-wide-announcements に以下のようなロジックがあります。 def self.current_announcements(hide_time) with_scope :find => { :conditions => "starts_at <= now() AND ends_at >= now()" } do if hide_time.nil? f…

申込み内容を一旦保存して、カード決済のサイトへ

備忘録です。他の人がこのパターンに合致するかは分かりません。 あと、Paypal じゃないよ。「確認画面 ⇒ カード情報入力な別サイト ⇒ ThankYou画面」の流れがわかった。 別サイト遷移直前に 1) モデル保存。その際、session に id 保存 2) 別サイトフォーム…

button_to に disable_with オプションは無い

以下の様に使いたくなりましたが、disable_with オプションはありませんでした。 <%= button_to('調べる!(5分ぐらい掛ります)', check_hoges_path, :disable_with => '調査中...') %> 以下で対応しました。 <% form_tag check_hoges_path do %> <%= submit_t…

map.resources の整理

map.resources :estates, :has_many => [:rooms, :water_meters] は map.resources :estates do |estate| estate.resources :rooms estate.resources :water_meters end とも書けます。私は後者のほうで統一する事で頭の中が少しスッキリしました。

selectメソッドと selected について

ググったらいくつか記事がありましたが、私なりに書いてみたいと思います。オブジェクトの型が一致していないとデフォルト表示(selected)してくれません。migration抜粋 t.date :kiboubi view抜粋 <%= content_tag :th, "配達希望日" %> <%= content_tag :td…

exception_notification を rails2.3 に入れる

script/plugin install で入れるとハマる。Rails3 用になってるからね。 https://github.com/rails/exception_notification/tree/2-3-stable から tarball をGet! vendor/plugins/exception_notification として解凍 後は config/environment.rb に Exceptio…

配列の中身が2個なのに first, last 共に同じインスタンス!?

Rails のバグなのでしょうか・・・? 誰か教えてください。script/console の実行結果です。 >> Entry.find(3593).users.class => Array >> Entry.find(3593).users.collect(&:id) => [2153, 2124] >> Entry.find(3593).users.first.id => 2153 >> Entry.fin…

Capistranoのメンテナンスモードの RailsBaseURI版

使用環境 passenger 2.2.15 capistrano 2.5.19 capistrano で cap deploy:web:disableするとメンテナンスモードになりますね。メンテナンスモード中にアクセスすると以下の様な画面になります。 私は一つのサーバに複数のRailsアプリを運用しているので、 Ra…

今週のお題「iPad 2欲しいですか?」 ・・・持ってない人は欲しいでしょうね。 だってこんなに話題になっているんですもの。IT好きな人は当然として、 IT恐怖症の人も、ひそかにいじってみたいんじゃないでしょうか。 私?iPad持ってないので当然欲しいです。

dbに保存した画像を表示すると途中で切れてる...

引き続き Attachment_fu + db_files の話題です。 rails 2.3 + MySQL を使っているのですが、DBに保存した画像データを原寸大表示すると途中で途切れてる・・・。 なんで? ブラウザから画像ダウンロードして、ファイルサイズみると 64K だ。じゃ、元々はど…

attachment_fu + db_file で fixture を考える。

rake db:fixtures:load したら画像(binary data)もアップされた状態にしたいよねー。 プラグインで一発です。 (最初、自力でどうにかしようと思いましたが、結構大変です)https://github.com/mynyml/attachment_fu_fixturesfixture は以下の様に書きます。 e…

fckeditor で DEPRECATION WARNING: ActionView::SafeBuffer is deprecated!

Ruby 1.8.7 + Rails 2.3.10 です。 FCKEditor を入れると以下の警告が出ます。 DEPRECATION WARNING: ActionView::SafeBuffer is deprecated! Use ActiveSupport::SafeBuffer instead. (called from local_constants at /usr/local/lib/ruby/gems/1.8/gems/a…

MacBook Air 11インチ欲しい!

コールバックの戻り値

以下の発見がありました。(Rails 2.3.5) 例えば before_destroy などのコールバックで条件により削除させない方法があること ActiveRecord#destroy の戻り値で判定できる事 以下、ソースサンプルモデル def before_destroy if hoge? errors.add(:fuga, "hell…

v2.3.5 に event_calendar のインストール

試してみようと思い、入れたら generate でエラー /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- rails/generators/migration (MissingSourceFile)どうやら最新は 2.3 で、それから Rails…

delayed_job を入替えた

現状のものが使いにくかったので入替えました。以下のサイトが大変参考になりました。 http://namakesugi.blog42.fc2.com/blog-entry-65.html情報は上記のサイトに書いてあるので、私はそこに書いてなかった情報を載せますね。インストールしたのは以下のバ…

モデルからヘルパーを使う

PDF出力に prawnto ではなく prawn を使っています。 モデル内で number_with_delimiter を使いたくなって調べました。 class Bill < ActiveRecord::Base include ActionView::Helpers::NumberHelper def hoge number_with_delimiter 1234 end end まっ、本…

部分テンプレートとコレクションの連携

よく以下のようなサンプルを見かけます。◆ ブログの show(ブログとそれにぶら下がる複数のコメントを表示) <%= render @blog.comments %> ◆ comments/_comment.html.erb <div class="comment"> <p> <strong>Comment last updated: <%= comment.updated_at %></strong> <%= link_to "Edit", edit_articl</p></div>…

restful-authentication + aasm でのバグ!?

「recently_activatedメソッドがありまへんでー」とエラーが出てしまう人の為に。app/models/user_observer.rb が生成されます。 def after_save(user) UserMailer.deliver_activation(user) if user.recently_activated end 実行すると以下のエラーメッセー…

rails の template ファイルに以下の記述をした

initializer 'datetime_formats.rb', <<-CODE #Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") } # 他は省略ね CODE テンプレートを適用すると以下のエラー undefined local variable or method `time' …

続・RailsによるアジャイルWebアプリケーション開発 第3版のサンプルを実際に動かす

P406 の「ネストされたリソース」って初心者から脱却すべき課題の1つだと思う。熟読すべし。ActiveRecord の 1:n の関係は理解できた人もそれをどうルーティングや表示と連携すれば良いのか?以下に要約。 1つの記事(article)に複数のコメント(comment)がぶ…

check_box で複数選択の時、ON⇒OFFの情報が来ない

以下のソースを書いてみた。突っ込み歓迎します。以下は index ビュー <% @choice_users.each do |choice_user| %> <tr> <%= content_tag :td, check_box_tag("choice_user[#{choice_user.id}][my_check]", true, choice_user.my_check?) %> <%= content_tag :td</tr>…

Redmine0.8.4 ⇒ 1.0.1 にアップグレード

バックアップとかは書いていない。必要最低限の情報のみ書きます。 あんまり使いこなしていないのでうまく行ったのかも(email.yml とかそのままでOKだった) アップグレード作業 cp ../redmine-0.8.4/config/database.yml config/ cp ../redmine-0.8.4/conf…

Rails.vim の partial 機能

備忘録的に...どっちかって言うと vim の備忘録になるのですが、 「行選択モード」を使う機会が少ないのか、よく忘れます。 Shift+V で切り出したい範囲を選択(vim の行選択モード) 右記の様に入力する ⇒ :Rpartial hoge 後は切り出した側と切り出された側を…

半角チェックをリファクタしてみた

必要に迫られたので、自分で書く事をせずに Google先生に頼ってしまいます。以下のページがヒットしました。 http://doruby.kbmj.com/talkOneself/20100308/_Ruby_勝手にリファクタリングさせてもらいました。 def self.hankaku?(str) return nil if str.nil…

delayed_job を使ってみる

非同期処理をやってくれる Delayed_job。 大量メール送信があるので、http://d.hatena.ne.jp/mat_aki/20100113/1263378918 を参考に実際に動かしてみる。rake がらみはどんなのがあるのかな $ rake -T | grep jobs rake jobs:clear # Clear the delayed_job …