Railsで可読性の高いステート・マシンを実現できるGem State_machine Feb 25th, 2013 Tweet Ruby/Rails内でステート・マシンを実現してくれるGem、『state_machine』の紹介です。model内に直感的なコードを書くことができ、かつメンテナンスもしっかり行われているので、オススメです!
translations Documentation RSpec is a great tool in the behavior-driven development (BDD) process of writing human readable specifications that direct and validate the development of your application. On the web there are many resources that give complete overview of _what_ you can do with RSpec. But there are fewer resources devoted to how to create a great RSpec test suite. Better Specs tries to
I'm using rails 4 & ruby 1.9.3 for my application and fancybox2-rails gem, but there's a general problem with asset pipeline. If I run rake task for precompile, then everything is fine except for images in vendor/assets/images and ../gems/ruby-1.9.3-p327/gems/fancybox2-rails-0.2.1/vendor/assets/images. Images from these two folders are not being precompiled and eventually I have a problem with dea
アプリケーションのバージョンアップなどでテーブル追加を伴うスキーマ変更があった場合に、テーブル追加したところのデータだけ画面で「????」になって表示されてしまうことが稀にあります。 この対応方法について、発生理由と共に簡単に解説しておこうと思います。 結果だけを先に書いておくと、今回の根本原因はAmazonRDSを起動するときのパラメータグループの初期設定が不十分で、初回create database時に default character set に想定外のものがセットされていたためです。 下記ではその原因を特定する方法と解決方法を示していきます。 まずは文字化けした時に状況確認を行ってみてください。おそらくは下記のような状況になっているかと思います。※今回は文字コードを全てutf8に統一しているものとします。 まずは文字化けしているテーブルの情報を確認してみます。 mysql> sh
こんにちは。GMOメディア技術推進室の中村です。最近暑かったり、寒かったりで体調を崩し易い気候ですが、皆様はいかがお過ごしでしょうか?今回は「Heroku/Railsでよく使うgemやadd on」を5つを紹介したいと思います。 画像アップロードライブラリpaperclip画像アップロード、変換用クラウドサービスCloudinaryの利用リライト用Rackアプリケーションrack-rewriteip制限をかけるrack-contribstrong_parameters 1. 画像アップロードライブラリ paperclip画像アップロードライブラリは幾つかありますが、その中でもよく使うのがpaperclipです。paperclipは実装も簡単でAmazon S3との連携もできます。 thoughtbot/paperclip · GitHub 今回はAmazon S3と連携する方法を紹介したい
Amazon EC2のインスタンス上で何かしらアプリを動かしていて、メールを送信したいって場合はEC2のインスタンス上で何とかすることも出来なくはないようですが、結構大変なので素直にAmazon SESというメール送信サービスを使いましょうというお話です。 Amazon EC2と同じくAWS上のサービスですので、AWSのアカウントが必要です。また迷惑メール配信防止のため、送信元アドレスの存在チェックなど諸々の手続きが必要ですが、その辺はAWSのヘルプを見てください。 で、ようやく本題のRails 3.2.xでAmazon SESを使ってメールを送信する方法ですが、aws-ses という便利なパッケージがありますので今回はこれを利用しましょう。 まずはGemfileに下記を追加してbundle installします。 gem "aws-ses" インストールに成功したら、config/in
上記のような一画面に基本情報(宛先、住所)と複数の明細情報(物品名、数量)がある画面で入力された情報を親子関係にある基本テーブル(発送テーブル)と明細テーブル(物品テーブル)に同時に登録したい場合が業務アプリではけっこうあると思います。 Railsではこのようなケースに簡単に対応するための便利機能が用意されています。具体的にはモデルでaccepts_nested_attributes_forという設定を、ビューでfield_forメソッドを利用します。この機能を利用すると以下の2つメリットがあるので是非活用することをオススメします。 ソースコードが短くてすむ ⇒ 後述しますが、特にコントローラー側の記述量は激減します。 明細データへのバリデーション結果が画面にキレイに表示できる ⇒ 親子関係をRailsに認識させることで明細データのバリデーション結果を表示するロジックを個別に実装する必要が
モデルからデータを取得する際に常に特定の検索条件を指定することができるdefault_scopeですが、 デメリットについてあまり注意を払わずに使ってしまって失敗しました。 サンプル事例 環境 * Rails 3.2.12, 4.0 * MySQL 5.1.65 ※ 実際に問題が起きたバージョンが3.2.12 なのでそちらが中心になっています。 データを「名前」「年齢」どちらか指定された値で並び替えるという処理があったので、 特に指定が無ければid順で取得するという条件をdefault_scope を使って追加しました。 class User < ActiveRecord::Base default_scope -> { order(:id) } end これで、モデルからデータを取得する際に必ずORDERが指定されるようになります。 User.all #=> SELECT "users"
ActiveRecord Capybara Cucumber Devise EnvYAML Git HAML Heroku Hoptoad Jammit jQuery Less CSS MongoMapper MongoHQ Mongoid MooTools OmniAuth Pow Prototype RailsAdmin Redis RedisToGo RightJS RSpec SASS Sequel Settingslogic Slim Test::Unit Use the default ActiveRecord database store. Use the Capybara acceptance testing libraries with RSpec. Use Cucumber for integration testing with Capybara. Utilize D
Rails製アプリは、1画面に結構な量の情報を表示しようものなら、すぐにパフォーマンスが悪くなってしまいます。基本を押さえておけばこういったことに陥らないのですが、Railsがあまりにもサクサク開発できちゃうもんですから、ついつい調子に乗って基本を忘れてしまいがち。自分を戒めるためにも、パフォーマンス・チューニングの基本をまとめておくことにします。 環境 Rails 3.2.14 Ruby 2.0 sqlite3(データベース) WEBrick(httpサーバ) Mac Book Air 2012 Mid (デュアルコア2.0GHz Intel Core i7) チューニングするデモアプリ いまいち冴えないビジュアルのこのデモアプリ『Bookshelf(本棚)』を使用します。テーブルの1セル(td)に1冊の本が納められているつもりです。 Bookshelf仕様 著者(Author)はN件の
以下のように debugger-linecache のbundle時に失敗したときの対応メモ。 Installing debugger-linecache (1.1.2) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/interu/.rbenv/versions/1.9.3-p362/bin/ruby extconf.rb checking for vm_core.h... no checking for vm_core.h... no Makefile creation failed *****************************************************************
railsでファイルダウンロードさせるためにsend_fileを使うときに日本語ファイル名でダウンロードさせるとき、私は以下のようにしていました。 filename = "今後の予定.xls".encode("cp932") send_file(f, :filename => filename) cp932でencodeしているのは、utf-8でおくるとIEが文字化けしていたので、そうしています。 普段は、chromeでも特に問題がありません。 しかし、たまに文字化けが出ていました。 上記のファイル名の場合は「予」の部分で文字化けがおきてしまいます。 これの原因は、たぶん以下のサイトで書いてあることが影響している気配です。 https://sites.google.com/site/fudist/Home/grep/damemoji で対策として以下のようにするようにしました。 filen
自社サービスにAPIを実装する事ってあまりないですよね。 kamadoのプロダクトも現在はAPIは公開してません。 もし提供するのであれば、簡易的な方法ですが、ユーザーテーブルにtokenカラムを追加して、API用のルーティングを作成する…という方法が考えられると思います。 しかし、その実装時間でより良いAPIが実装出来るとしたら素晴らしいですよね。 そこで紹介したいのがgem doorkeeperです。 日本語の記事が見当たらなかったので記事にしました。 github https://github.com/applicake/doorkeeper gem doorkeeperってどんな機能があるのか? 簡単に説明すると、 ・アプリケーションの管理機能 ・アプリケーションの承認管理 ・スコープの設定 いってしまえば、Facebook API(に近い実装)そのまま実装出来ます。 しかもOAu
Posted on September 21, 2012 (Last modified on June 23, 2020) | 7 minutes | 1418 words Originally published at https://pjambet.github.io/EDITEverything detailed in this article has been wrapped up in this gem, you should give it a look ! Anyway, I still advise you to read this article as it will probably help you how everything works ! PrefaceSince beginning of september, Amazon added CORS suppo
外部サービスと連携すると、連携するサービスの状況に依存していろいろなエラーが発生したりします。 例えば外部サービスが高負荷であるために、タイムアウトのエラーが発生したり、強制的にコネクションをリセットされるようなエラーなど様々です。 その状況が発生した際に、利用ユーザにエラー画面を表示したり、再操作を指示するメッセージを表示するのは、ユーザ視点で考えると微妙ですね。 ではどうすればよいでしょうか? そんなときは、retryableというライブラリ(gem)を利用するとよいです。 このretryableというgemは、名称から推測できるとおり、失敗(エラー)したときにリトライしてれるものです。 例えば、SonicGardenが提供しているサービス『youRoom』では、Facebookアカウントでログインという機能があります。 その認証に稀ではありますが以下のようなエラーが発生することがあり
Two steps for faster browser specs March 11, 2013Posted by Tom Meier Keeping specs fast is a never ending battle for the average Rails developer. There are 2 quick lines of javascript that can make excellent and stable improvements to spec speed performance. Most people are aware of JQuery giving the option to disable animations (see – fx.off), we can disable this in test mode making all browser b
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く