タグ

railsに関するanimistのブックマーク (209)

  • [Rails] TODO, FIXME, OPTIMIZE アノテーションを用いてToDoを失念しないようにする: ギークになりたいスーツのメモ帳

    今更なのかもしれませんが、rake notesという非常に便利なコマンドを知りました。 これまで、コードの中にコメントを記載する形でToDoをメモしたりしていたのですが、それだと結局どこにどんなメモが書かれているかが一覧で見れないので忘れていく事も多いのですよね。 そこで、コード中に以下のような記載をしてあげます。 # XXXX: ここに内容を記載 XXXXの箇所には、TODO, FIXME そして OPTIMIZE のうちのどれかを記入します。 例えば、以下 # TODO: ○○の機能を実装 そして、rake notesコマンドを叩いてあげると、以下のように表示されます。 app/controllers/books_controller.rb: * [ 38] [TODO] ○○の機能を実装 コントローラだけでなく、viewのhtmlについても、以下のような記述をしてあげる事で表示がされ

    animist
    animist 2013/06/27
    コントローラだけでなく、viewのhtmlについても、以下のような記述をしてあげる事で表示がされました。 1 > コントローラだけでなく、viewのhtmlについても、以下のような記述をしてあげる事で表示がされました。 > > > こ
  • rake notes で,spec, js, coffee, scss, haml, slim のファイルも対象にする - 情報建築学って何さ?

    class SourceAnnotationExtractor def find_with_custom_directories find_without_custom_directories(%w|app lib spec|) end alias_method_chain :find, :custom_directories def find_in_with_custom_files(dir) results = find_in_without_custom_files(dir) Dir.glob("#{dir}/*") do |item| next if File.basename(item)[0] == ?. if File.directory?(item) results.update(find_in(item)) elsif item =~ /\.(coffee)$/ resul

  • rake notes | 変なヤバいもんログ

    Posted on 2009年4月22日 Posted by ちゅう コメントする Posted in Development Tags: Rails プログラム中にコメントで # TODO 退会のフローについてメール確認待ち 090420 とか書いたりするのだけど、Rails で使ってると rake で一覧を抽出出来る。 % rake notes app/models/user.rb: * [267] [TODO] 退会のフローについてメール確認待ち 090420 よく見てみたら、TODO以外も拾ってくれるようだ。 % rake --tasks rake notes # Enumerate all annotations rake notes:fixme # Enumerate all FIXME annotations rake notes:optimize # Enumerate a

    rake notes | 変なヤバいもんログ
  • Rails の rake notes というタスクをいまさらしった。 | そんなこと覚えてない

    2013 1月19日 11:35 Rails の rake notes というタスクをいまさらしった。 Rails Guide 読んでたら notes というタスクがあるのを知りました。 コードのコメントに TODO とか FIXME, OPTIMIZE といったコメントをみつけて表示してくれます。 grep すればいいやとか思いますが、それなりの便利そうです。jenkins なんかで回してレポートに出すのもよいかもしれません。 $ roke notes app/controllers/admin/users_controller.rb: * [ 20] [TODO] any other way to do this? * [132] [FIXME] high priority for next deploy app/model/school.rb: * [ 13] [OPTIMIZE]

  • #66 Custom Rake Tasks - RailsCasts

    Rake is one of those tools that you don't realize how powerful it is until you start using it. In this episode you will learn how to create custom rake tasks and improve them by using rake features.

    animist
    animist 2013/06/27
    rails の rake タスクを任意に追加する方法
  • bundle installするときはpathを指定しよう

    Rails3からBundlerが導入されgemの管理がしやすくなりましたが、色々なRailsアプリでほいほいbundle installを実行するとシステムにインストールされるgemが結構カオスになってきます。また、Rails2とRails3が同居する開発環境だとかなり面倒くさくなります。精神衛生上あまり宜しくありません。 そこでbundlerにオプションを渡してgemを任意のディレクトリにインストールし、gemRailsプロジェクト毎に管理することをオススメします。 Rails3の場合、使い方はこんな感じになります。 まず、プロジェクト用のディレクトリを作成し、Gemfileを記述します。

    bundle installするときはpathを指定しよう
    animist
    animist 2013/06/27
    RVM とか rbenv とかしなくても使う gem を切り替えるとかの話
  • ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Action Controller Overview - 株式会社ウサギィwiki

    1 Action Controller概要(Action Controller Overview) † このガイドではどのようにコントローラは動いているのか、どのようにアプリケーション内でリクエストサイクルに合わせているのかを学ぶことができます。 このガイドを読んだ後、以下のことができるようになります: コントローラによるリクエストの流れ なぜ、どのようにこのセッションやクッキー内のデータを保存するのか リクエストが処理されている間のコードが実行するフィルターの働き アクションコントローラの内蔵型HTTP認証の使用 ユーザーのブラウザへの直接的なデータの流れ 敏感なパラメータのフィルタ、これはアプリケーションのログに現れない リクエストの処理中に起きるかもしれない例外の処理 ↑ 2 コントローラは何をしますか?(What Does a Controller Do?) † Action C

    animist
    animist 2013/06/27
    クッキーストアはおよそ 4kb のデータを保存できます。これは他よりとても少ないが、普通これで十分です。 アプリケーションが使用しているどのセッションストアでも、セッションで大量のデータを格納することは、お勧
  • ActiveRecordでDISTINCTを使う - setoya-blog

    今まで、以下のようにしていたが、 Hoge.select('DISTINCT *').where(:hoge => true) Railsの公式ガイドによると、uniqというメソッドを使うのが正式なやり方なので、 Hoge.where(:hoge => true).uniq これで、上のと同じselect文がかける。 ちなみに、なんでこんなことを調べたかというと、Kaminariでページングをしていた際に、前者のクエリだと、DISTINCTをする前の重複した行を統合する前の行数でページングがされてしまって、意図した動作にならなかったため。 後者だと重複した行を統一したあとの結果でページングされていた。

    ActiveRecordでDISTINCTを使う - setoya-blog
  • rails_configで環境毎に定数を管理しよう! - SCRABBLE☆NOTE

    $ bundle install $ rails g rails_config:install create config/initializers/rails_config.rb create config/settings.yml create config/settings.local.yml create config/settings create config/settings/development.yml create config/settings/production.yml create config/settings/test.yml append .gitignore 各種ファイルの役割は以下。 config/initializers/rails_config.rb 定義した定数にアクセスする為のクラス名称を定義する。デフォルトは「Settings」になっている。

    animist
    animist 2013/06/03
    これ便利そう
  • 【Rails】ActiveRecord:単一テーブル継承(sti)とポリモーフィック関連を未だにぱっと思い出せないのでまとめ。 - 訳も知らないで

    ActiveRecordで単一テーブル継承(STI:Single Table Inheritance)とポリモーフィック関連という2つの便利なモデルの持ち方?関係性?があるのですが、恥ずかしながらいつも混同してしまいます… 多分頭の中では両方とも「似たモデルをまとめる」みたいなぼんやりした認識してるので混ざってしまっているようで… すごい今更ですが ちょっと自分なりにまとめてみようと思います。 単一テーブル継承(STI:Single Table Inheritance) 同じような機能(メソッド)を持つActiveRecordモデルクラスが2つ存在するので、 継承を使って実装しようとした場合。 例として 「Information」モデルを継承した「Warning」クラスと「Notice」クラスを作成するとします。 (例としておかしかったらごめんなさい…) 単純に実装すると、各モデルに対しD

    【Rails】ActiveRecord:単一テーブル継承(sti)とポリモーフィック関連を未だにぱっと思い出せないのでまとめ。 - 訳も知らないで
    animist
    animist 2013/06/03
    モデルの継承はうまくつかうとおもしろいことができる
  • #294 Playing with PJAX - RailsCasts

    pjaxはChris WanstrathによるjQueryプラグインで、HTTPリクエストでページ全体を取得するのではなく、AJAXリクエストによってページの一部を簡単に更新できるようにします。デモページでどのように動作するかを見ることができます。デフォルトでは、このページにあるいずれかのリンクをクリックするとページ全体がリロードされます。これはページ上の時刻表示が変わることでわかります。チェックボックスをクリックしてpjaxを有効化すると、リンクをクリックしてもページ全体がリロードされることはなく時刻も更新されませんが、ページのメインセクションは変化します。 pjaxはpushStateを使用するのでユーザはAJAXリクエストがバックグラウンドで生成されていることに気づきません。pjaxがページを更新するごとにアドレスバーのURLが更新され、ページのタイトルが変わり、前のページがブラウザ

  • さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)

    先日のももクロハッカソンで出会った wantedly を作ってる仲さんが と言ってたので、面白そうなので wantedly を速くしてみました。 wantedly ちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそうだなぁという感覚はやる前からありました。 アプリケーションサイドのチューニング 初心者*1にありがちな問題として SQL に適切にインデックス張ってない キャッシュすべき場所をキャッシュしていない 無駄なデータを引きすぎてる ことがよくあります。ので順に実装を見ていきました。 SQLに適切なインデックスを張ってない 張ってありました!びっくり!\(^o^)/ キャッシュすべき場所をキャッシュしていない Facebook API を利用したアプリケーションなんですが、ユーザのデータの取得を毎回馬鹿正直に HT

    さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)
  • migrationで複数カラムのindexを生成する時の注意事項 - マオの徒然日記

    Ruby on Railsではmigrationファイルに add_index テーブル名, :カラム名, :unique => true とすることで簡単にテーブルにユニークなindexを生成することが出来ます。 そして、indexに複数のカラムを設定する際は add_index テーブル名, [:カラム名1, :カラム名2, ・・・], :unique => true のようにすることで実現できます。 なので、意気揚々とindexを作成していたら以下のようなエラー。 Index name 'xxxxxxxxxxxxxxxxxxx' on table 'テーブル名' is too long; the limit is 64 characters 何も考えず複数カラムでindexを生成していたら、その名前が長くなりすぎて、エラーとのこと。 64文字以内にしなさいね、ということらしいです。

    migrationで複数カラムのindexを生成する時の注意事項 - マオの徒然日記
  • #206 Action Mailer in Rails 3 - RailsCasts

    Download: source codeProject Files in Zip (97.3 KB)mp4Full Size H.264 Video (17.6 MB)m4vSmaller H.264 Video (12.1 MB)webmFull Size VP8 Video (33.4 MB)ogvFull Size Theora Video (23.9 MB) ActionMailer has changed significantly in Rails 3.0. It now has a new API and uses the Mail gem instead of the TMail gem and is much nicer to use. In this episode we’ll show you how to use it to send emails from yo

  • ASCIIcasts - “Episode 210 - Deviseのカスタマイズ”

    210: Deviseのカスタマイズ  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 前回のエピソード[動画を見る, 読む]で、Railsアプリケーションでユーザ認証を行うためにdeviseを設定する方法を紹介しました。今回は、前回から引き続いてdeviseをカスタマイズする方法を見ていきます。 前回と同じアプリケーションを使うので、登録、ログイン、ログアウトのページがあり、すでにある程度の認証のしくみができています。 アクセスを制限する 次のステップでは、ログインユーザのみに特定のアクションへのアクセスを制限します。ログインしたユーザだけがプロジェクトを作成、編集、削除できるようにします。このためにProjectsControllerを修正しbefore_fi

  • deviseでアクションの完了後に移動するパスをカスタマイズしたい | NizLog

    ログイン/ログアウト後などの遷移先をカスタマイズする場合は、各コントローラーで以下のメソッドで、移動させたいパスを返すようにオーバーライドします。 Devise::*sController を継承したコントローラーを設置します。 以下、オーバーライド用コントローラーは app/controller/users/*_controller.rb に設置したものとします。 もっとあるのかと期待していたけど、案外少ない…。見落としがあるのかな…?

  • ホーム

    クラウドプラットフォームのスケーラビリティを活かした大規模システム開発の現場を、私たちはいくつも経験してきました アーキテクチャの検討から、実装・運用の設計まで、なんでもご相談ください

  • ダメ出しは公衆の面前ではなく、裏でこっそりやりましょう|まだ仮想通貨持ってないの?

    ぼくは自分のブログでは個別のダメだしは控えるようにしています。 ダメ出しは裏でこっそりやる たとえば面白いアプリを紹介するとして、「これ、コンセプトはいいんだけれど、UIがいまいちだなぁ」と思うことがあったりします。 そんなときは、ブログではUIについてのダメだしは、どれだけ書きたくなっても口をつぐむことにしています。何らかの事情でどうしても書いておきたい場合でも、せいぜい「リリースしたばかりのこのアプリ、新し物好きの方はぜひ試してみては?」とやんわり濁す程度にとどめておきます。 で、気になった部分は、別途アプリの開発者の方にフェイスブックなどでメッセージをお送りするようにしています。「記事書かせていただきました!面白いアプリですねー。触ってみて個人的にユーザーとして気になった点があったので、ご参考までにお伝えしておきますね。……」といったテンプレですね。 ダメが改善されにくくなる 公衆の

    ダメ出しは公衆の面前ではなく、裏でこっそりやりましょう|まだ仮想通貨持ってないの?
  • Cool.io Event Framework for Ruby

    Do you like Sinatra? Do you like Node.js? Wish you could write Node.js apps in Ruby as easily as you write Sinatra apps? Let's ask Cool.io how. Cool.io lives on Github A Quick Tour Hi, I'm Coolio, the fabulously wealthy singer of Gangster's Paradise. Let's write an event-driven echo server: See? Look at that, it's easy! But how's it work? Let's take a peek into the parts of my DSL: cool.io.server

  • ActiveSupport::Queue

    animist
    animist 2012/11/22
    rails4 からは 標準で Queue が抽象化されたインターフェースが用意されるよ、というお話