Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
opening connection to www.google.co.jp... opened <- "GET / HTTP/1.1\r\nConnection: close\r\nHost: www.google.co.jp\r\nAccept: */*\r\n\r\n" -> "HTTP/1.1 200 OK\r\n" -> "Date: Sun, 30 Sep 2012 01:49:21 GMT\r\n" -> "Expires: -1\r\n" -> "Cache-Control: private, max-age=0\r\n" -> "Content-Type: text/html; charset=Shift_JIS\r\n" -> "Set-Cookie: PREF=ID=be9181a7dc77ebf4:FF=0:TM=1348969761:LM=1348969761:S
railsアプリケーションで、error以上のレベルのログだけ、2箇所にログを出力したいと思った。 前提 ruby 2.1.2 rails 4.1.4 方法 まず、複数の出力先にロギングするには、ActiveSupport::Logger.#broadcastというメソッドが使える。 config/application.rbのMyapp::Applicationクラス内に下記のように書いてみた。 logger = ActiveSupport::Logger.new(config.paths["log"].first) error_logger = ActiveSupport::Logger.new("log/error.log") error_logger.level = Logger::ERROR logger.extend ActiveSupport::Logger.broadcas
zilkey/active_hash HashデータをActiveRecordのように扱う事の出来るgem。 少し使った感じはかなり便利そう。 Qiitaにactive_hashだけの記事が無かったので書いてみる。 用途 例えば、カテゴリデータや都道府県など、プルダウンに使うような静的データは、色々な持ち方ができます。 単純に定数で扱ってもいいですし、
friendly_idとは 通常、railsでのルーティングは /users/1とか/posts/1などのように /users/:id と形のURLとなりますが、 /users/reizistというようなフレンドリーなURLにしたい時、ありますよね。 そんな時のためのgemです。 Why friendly_id? 正直、目的を達成しようと思えばこのgemを使わなくても実装できます。 では何故今更friendly_idなのでしょうか? それは、rails-style-guideでUse the friendly_id gemと書いてあるからです。 そして、コードの見通しが立てやすいという理由もあると思います。 自前で実装しようとすると、明確なルールが与えられないので実現方法は複数あります。 更に、コードがController, Model, routes.rbのそれぞれに散らばり、初見では
はじめに これは Ruby on Rails Advent Calendar 2014 - Qiita の19日目です 18日目 @yancya さんの Rails でシングルじゃないテーブル継承 - Qiita でした 19日目:オレオレRailsアプリを支えるインフラの作り方 最近では Heroku などのPaaS*1 も普及してインフラのことを知らなくても簡単にアプリを公開することができるようになりました。 しかしトラブルシューティングやパフォーマンスチューニングなどを行うにはアプリケーションコードだけで完結することは少なく、全体像を把握する必要があります。Railsアプリケーションの裏でどんな構成で動いているかを知っておくかは重要なのでざっくりと紹介したいと思います。 書かないこと Railsアプリを作る上でのノウハウ 便利なgemや外部サービスの紹介 *2 監視 アラート検知 モ
例外を利用して実装すると便利な場合が多い この投稿では、HTTP経由でJSONを返すようなWeb APIをRailsを利用して実装するとき、エラーレスポンスを返す場合の処理をどう実装するとやりやすいのか、というニッチな話題に触れる。APIでエラーを返したいとき、即ち400以上のステータスコードと共にレスポンスを返したいような場合、どう実装するのが良いか。もしリクエストの処理中にエラーが検出された場合、それ以降の処理を行わずに直ちに中断してエラーレスポンスを返したいという場合が多いため、例外を利用して実装すると便利な場合が多い。 例外を利用しない方が良い場合もある 1つのリクエストに複数の問題が含まれている場合、先に見つけた問題だけを報告するようなエラーレスポンスを返すのか、それとも問題を抱えながらも進めるところまで処理を進めて報告可能な情報を全て含むようなエラーレスポンスを返すのか、という
application.cssに *= require_tree . のかわりに *= require_directory . とする。これでassets内全てでなくassets内一番上のディレクトリだけを参照するようになる。 それから、assetsディレクトリにinsideとか適当な名前をつけたサブディレクトリを作って、読み込ませたくないCSSをそこに移動させる。たとえばstories.css.scssをここに移動させる。 これで、まずinsideに入れたCSSを読み込まなくなる。 読み込ませたいページのViewにだけ、 <%= stylesheet_link_tag "inside/stories", :media => "all" %> という読み込みタグを書き込む。これでstories.css.scssは、そのページでのみ読み込まれる。
4. @tricknotes I am a software developer who love JavaScript and Ruby. http://tricknotes.hateblo.jp/
背景 railsアプリからメールを送信することは簡単にできますが、開発中に送信メールを確認したいときはどうするでしょうか。 今回はrailsアプリ開発中にメールを確認する方法を紹介します。 準備 今回はメール確認の例として、deviseを用いてメール認証が必要なユーザー登録の仕組みを用意します。 deviseインストール railsアプリケーションがすでに初期化されていたとして、 Gemfileにdeviseを追加し、インストールを行います。 bundle exec rails generate devise:install bundle exec rails generate devise user bundle exec rails generate devise:views users
プログラムは、なるべく何もしなくても良い感じに動いてくれるのが理想的だけど、実際には何らかのかたちでユーザの設定を必要とすることがある。 Rails を使うときは config/application.rb でタイムゾーンを指定したり、DB へ接続するための情報を config/database.yml に指定する。 Bundler の挙動を変えたければ bundle config で設定を変更する。 Gem をインストールするときに毎回指定したいオプションがあれば、~/.gemrc に追記する。 もし自分の関わるプロダクトに「設定」のAPIが必要になったとき、何を判断の基準にして設計すればいいだろう。 ちょっと近所を見渡すだけでも、「設定」のやり方には色々ありそうだ。 設定という視点から、Rubyist にとって身近なプロダクトたちを資料として眺めてみた。 (NOTE: ちょっと悩みなが
先日のももクロハッカソンで出会った wantedly を作ってる仲さんが と言ってたので、面白そうなので wantedly を速くしてみました。 wantedly ちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそうだなぁという感覚はやる前からありました。 アプリケーションサイドのチューニング 初心者*1にありがちな問題として SQL に適切にインデックス張ってない キャッシュすべき場所をキャッシュしていない 無駄なデータを引きすぎてる ことがよくあります。ので順に実装を見ていきました。 SQLに適切なインデックスを張ってない 張ってありました!びっくり!\(^o^)/ キャッシュすべき場所をキャッシュしていない Facebook API を利用したアプリケーションなんですが、ユーザのデータの取得を毎回馬鹿正直に HT
RailsのActiveRecordのお話です。 recordを新しく作成する時にだけかけたいvalidationがあったり、更新する時にだけかけたいvalidationがあった経験はありませんか? そんな時、ActiveRecordはとってもお利口さん。 対象のクラスにおいて、魔法のメソッド「validate_on_create」「validate_on_update」メソッドを定義してあげると、上記を実現できます。 例えば、以下のような状況設定とする。 Studentテーブル └ 作成するときだけ、パスワード(password)を確実に登録してもらう。 └ 更新する時だけ、年齢(old)を入力してもらう。 実現方法は多数ありますが、代表的なものを2つほど紹介します。 実現方法1 class Student < ActiveRecord::Base validates_presence_
DCI アーキテクチャという設計についての考え方がある。数年前から scala 界隈で盛り上がっていた記憶があるが、最近は ruby/rails 界隈でも盛り上がっている模様。 先日の札幌 ruby 会議で角谷氏が発表を行っている。 rubykaigi http://sapporo.rubykaigi.org/2012/ja/schedule/details/79.html スライド http://kakutani.com/20120916.html#p01 そこからたどって以下のような資料があるのも発見した。 objects on rails (書籍の無料公開) http://objectsonrails.com/ Clean Ruby http://clean-ruby.com/ 書籍サイト。ベータ版書籍が購入可能。$42なので電子書籍にしてはかなり高い。 DCIの講演 tog
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く