タグ

ブックマーク / blog.willnet.in (9)

  • Rails で DB の Time 型を扱う - おもしろwebサービス開発日記

    Rails では、DB の Time 型 を扱うことができます。これは日付を必要とせず、時間だけを格納したいときに使います。 定義方法は、他の型と同じく add_column メソッドなどで time を指定するだけです。 add_column :users, :lunch_time, :time ただ、これを使おうとするにはちょっとしたノウハウが必要です。 RubyRails には、時間のみを扱うクラスはありません。DB の Time 型は Ruby の Time オブジェクトに変換されます。Time オブジェクトは年月日の情報を持っています。その際、タイムゾーンは utc (正確には ActiveRecord::Base.default_timezone で設定されたタイムゾーン) として扱われます。 lunch_time カラムに 12:00 が格納されていた場合、次のような

    Rails で DB の Time 型を扱う - おもしろwebサービス開発日記
  • ruby-mode のインデントをいい感じにする - おもしろwebサービス開発日記

    僕はこれまで下記のようなインデントで ruby のコードを書いてきました。 SuperLongClassName.super_long_name_method(hoge: 'fuga', foo: 'bar', baka: 'aho') 理由は、Emacs の ruby-mode による標準インデントが上記のような形になっているからです。今ひとつだなーと思いながら幾年月。すばらしい設定を発見しました。 (setq ruby-deep-indent-paren-style nil) とすると下記のようにインデントできます。 SuperLongClassName.super_long_name_method( hoge: 'fuga', foo: 'bar', baka: 'aho' ) おお!すばらしい…かと思ったら閉じ括弧が微妙ですね。ぐぐったらこんな設定を見つけました。 (defadvi

    ruby-mode のインデントをいい感じにする - おもしろwebサービス開発日記
    hidemail
    hidemail 2015/10/30
  • ランダムで日本人の名前を返す gem を作った - おもしろwebサービス開発日記

    gimei という、ランダムで日人の名前を返す gem を作りました。 似たようなライブラリに faker があります。faker は人の名前だけではなく、住所やメールアドレスやユーザ名や電話番号など、たくさんのジャンルのダミーデータを返してくれるすごい gem です。しかも i18n に対応しており、yaml ファイルを定義すれば日語も使えます。 じゃあ faker でいいじゃん!って思いますよね。しかし一つだけ問題がありまして…。ふりがなが使えないのです。 そこでgimeiです。gimeiは下記のような形でふりがな(フリガナ)に対応しています。 gimei = Gimei.new gimei.kanji #=> "斎藤 陽菜" gimei.hiragana #=> "さいとう はるな" gimei.katakana #=> "サイトウ ハルナ" gimei.last.kanji #

    ランダムで日本人の名前を返す gem を作った - おもしろwebサービス開発日記
  • Rails4.0に含まれる strong_parameters について - おもしろwebサービス開発日記

    注意 このエントリは急いで書いたので間違いが含まれている可能性が高いです。気づいた方はご指摘ください。 序文 strong_parameters とは、mass assignment で余計なパラメータをモデルの属性にセットさせないための新しい仕組みです。Rails 4.0 からはこれが標準になります。Rails2.x と 3.x はattr_accessibleやattr_protectedなどで似たような機能が提供されていましたが、これだと管理が煩雑になるケースがありました。 今年の3月くらいにGitHub が mass assignment の脆弱性を突かれたことで 、この問題をどうにかしようという流れが起き、最終的に strong_parameters が作られるという経緯を辿りました。 mass assignment とは Rails ではこんなコードをよく見ると思います。 de

    Rails4.0に含まれる strong_parameters について - おもしろwebサービス開発日記
  • Capybara の README 意訳 - おもしろwebサービス開発日記

    注意 この訳はだいぶ古い(2011年7月時のREADME)です。最新版の訳をgithub上に載せたのでこちらをご覧ください。 はじめに Rails のエンドツーエンドテスト用のデファクトスタンダードプラグイン Capybara の README 意訳です。いつもと比べて直訳成分多めです。 テスト関連はどうにも日語の情報が少なくて、覚えるのが大変ですね>< 概要 Capybara は Rack アプリ(Rails, Sinatra, Merb等)の統合テストを簡単にするのが目的です。Capybara は現実のユーザがウェブアプリとやりとりするのをシミュレートします。テスト用のドライバを選択できます。デフォルトでは Rack::Test と Selenium ドライバをビルトインでサポートしています。HtmlUnit, env.js は外部の gem としてサポートしています。 完全なリファ

    Capybara の README 意訳 - おもしろwebサービス開発日記
  • Rails 3 の Action Mailerまとめ - おもしろwebサービス開発日記

    Ruby on Rails Guides: Action Mailer Basicsを読んでの自分用メモです。 Mailerを作る rails generate mailer UserMailer Mailer概要 defaultでmailメソッドのデフォルト引数を指定できる mailメソッドでmailを送る controllerと同じように、ここで定義したインスタンス変数はviewでも使える class UserMailer < ActionMailer::Base default :from => "notifications@example.com" def welcome_email(user) @user = user @url = "http://example.com/login" mail(:to => user.email, :subject => "Welcome to

    Rails 3 の Action Mailerまとめ - おもしろwebサービス開発日記
  • Rails 3 の I18n について - おもしろwebサービス開発日記

    Ruby on Rails Guides: Rails Internationalization (I18n) APIを読んでのメモ。全部網羅してたりはしてないので、気になった方は原文見てください。 基 I18n.translate "store.title" I18n.localize Time.now # 短縮形 I18n.t "store.title" I18n.l Time.now config/locales が translation 用のデフォルトロードパス。 I18n.load_path や config/application.rb 内で config.i18n.load_path をいじれば修正できる。 辞書ファイルにはyaml形式かRubyのhash形式が使える。 デフォルトのlocaleは:en I18n.default_localeでデフォルトのlocaleを変

    Rails 3 の I18n について - おもしろwebサービス開発日記
  • logrotateでログのローテーションをする - おもしろwebサービス開発日記

    railsのproduction.logなどをローテーションする一般的な方法、logrotateについてのメモ書きです。 基 /etc/logrotate.confにデフォルトの設定 /etc/logrotate.d/配下に個別の設定を書く 利用できるディレクティブ(の一部) daily or weekly or monthly ログのローテーション間隔 missingok ログファイルがない場合でもエラーにしない rotate n n回ローテーションする compress ローテーションされたログを圧縮 delaycompress 次回のログローテーションサイクルになるまで圧縮しない notifempty ログファイルが空ならローテートしない create 0644 user group ログファイルのパーミッションと所有ユーザの設定 copytruncate 通常、ローテートするとき

    logrotateでログのローテーションをする - おもしろwebサービス開発日記
  • emacsとRinariで快適Rails開発! - おもしろwebサービス開発日記

    emacsでRails開発をする際、emacs-railsを使っている方が多いと思います。emacs-railsはとても便利なelispなのですが、最近は更新頻度が低く、rhtmlhtml.erbの対応も一部されていなかったりします。あとRspecの対応もイマイチ。emacs使いの人たちは一体どうやってRails開発しているのでしょうか? そこでRinariですよ Rails On Emacs | Google グループを見ると最近は"Rinari"の話題で持ち切りなようです。Rinariはemacs-railsとは違いコア部分を小さく保って、プラグインで拡張していくタイプのelispです。 Rinari: Ruby on Rails Minor Mode for Emacs 基的には上記に全部書いてあるのですが、整理する意味でまとめてみます。 コア部分のインストール まず、gitでダ

    emacsとRinariで快適Rails開発! - おもしろwebサービス開発日記
  • 1