タグ

railsに関するkakku22のブックマーク (141)

  • 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サービス開発日記
  • Resqueを使ってRailsで非同期処理を実現する - kakakakakku blog

    Rails で非同期処理(バックグラウンドジョブ)を実現するライブラリの Resque を使ってみた. 非同期処理のハンドリングを全て Rails で扱えるのが利点で,バックエンドは Redis で動く.さらに sinatra ベースの Resque 管理画面もデフォルトで入ってて,ジョブの状況を確認できるのが結構イケてる感じ.しかも GitHub が作ってるっていうのが驚き. Resque の使い所としては,README.md を見るとすぐにレスポンスを返せない not always fast な処理もあるから,そういうものに Resque が使えると書いてある.例として以下の7種類が挙げられてた.まぁ他にも,画像変換をしたり,帳票を作成したりするのもそうだし,そういうちょっと重めの処理をするときにユーザのアクションを止めないで裏側で処理するときに使うライブラリって感じ.ただまぁ,REA

    Resqueを使ってRailsで非同期処理を実現する - kakakakakku blog
    kakku22
    kakku22 2014/08/09
    セルクマ
  • Rails以外でもDBのスキーマ管理にMigrationが使えるStandaloneMigration

    RailsのMigrationの機能便利ですよね。 他の言語やレガシーコードなフレームワークを使っていると、このMigrationの機能だけでも使いたいと思うことがよくあります。 それを可能にしてくれるStandaloneMigrationというgemがあるようで試してみました。 Ruby1.9.2を使っています。 インストール手順 プロジェクトディレクトリ作成 mkdir hoge cd hoge Rakefileを作成し、以下を記述 begin require 'tasks/standalone_migrations' rescue LoadError => e puts "gem install standalone_migrations to get db:migrate:* tasks! (Error: #{e})" end bundlerを使ってgemを管理するためbundle

  • Automatically Wait for AJAX with Capybara

    We have a race condition between click_link and reload_page. Sometimes the AJAX call will go through before Capybara reloads the page, and sometimes it won’t. This kind of nondeterministic test can be very difficult to debug, so I added a little helper. Capybara’s Little Helper Here’s the helper, via Coderwall: # spec/support/wait_for_ajax.rb module WaitForAjax def wait_for_ajax Timeout.timeout(Ca

    Automatically Wait for AJAX with Capybara
    kakku22
    kakku22 2014/07/23
    Ajax処理が終わるまでちゃんと待つ
  • capybara cheat sheet

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    capybara cheat sheet
  • Ruby on Rails - ActiveRecord で規約外のテーブル名を使用する方法!

    Ruby on Rails の ActiveRecord でテーブルを扱う際、デフォルトでは「モデルでは単数系の名称」を「テーブルでは複数形の名称」を使用するようになっています。 “hoge” → “hoges”、”library” → “libraries”、”person” → “people” などとテーブル側は適切な複数形で扱うようになっています。 自動で複数形の名前で扱ってくれるのはよいのですが、自作のモデルで複数形を勝手に規約に当てはめて欲しくない場合があります。 たとえば、モデル側 “abc_vwx”、テーブル側 “abc_vwxs” を扱いたい場合です。 この場合、これではエラーとなります。 テーブル名が不正なのです。 モデルが “abc_vwx” ならテーブルは “abc_vwxes” でないといけないからです。 これは、”box” の複数形が “boxes” になるのと

    Ruby on Rails - ActiveRecord で規約外のテーブル名を使用する方法!
    kakku22
    kakku22 2014/07/07
    self.table_name
  • Railsで規約に従わないテーブル名を使う - ゆとRubyist日記

    Ruby On Railsでデータベースを扱う時は、Railsの規約に従ってモデル名、テーブル名等を決定します。しかし、古いシステムからDBを引き継ぐ、他のプログラムとDBを共有する等、場合によっては、規約から外れた名前が必要になることがあります。 今回は、そんな場合にどうするかの内容です。 なお、Rails単体で新しくアプリを作る場合は、規約にきちんと従うことを強くお勧めします。 この内容は、Yokohama.rbのLT大会で話した内容をまとめ直したものです。(初めてのLTだったので、スライドを晒す勇気がなかったので、日記にまとめて書くことにしました。) テーブル名を規約から変える 例えば、ユーザのテーブルを作る場合、モデル名は大文字始まりの単数形(例:User)、テーブル名は小文字始まりの複数形(例:users)を使うのがRailsの規約です。Userという名前のモデルクラスがある場合

    Railsで規約に従わないテーブル名を使う - ゆとRubyist日記
    kakku22
    kakku22 2014/07/07
    self.table_name
  • chosen-railsによる検索機能付きセレクトボックスで、検索画面作成の手間を省く | Oh My Enter!

    Webアプリケーションには検索機能がつきものだと思いますが、場合によっては作るのがちょっと面倒なときがあります。例えば、1対多の親子関係を持つモデルで、子供のレコードを検索する場合に、親を特定した上で検索を行う場合などです。ちょっと具体例で考えてみましょう。 Customer(顧客)とSale(売上)の2つのモデルがあるとします。2つのモデルは1対多の関連があり、Customerが複数のSaleを所有しています。この状況下におけるのSaleの検索画面を考えてみます。 検索条件として、『Customer(顧客)』『Buy on(購入日)』『Product(商品名)』の3つを用意してみました。ここで注目してほしいのはCustomerです。SaleはCustomerに紐付いているので、例えば「Johnnyさんの売上一覧が見たい」という場合には、Customerセレクトボックスから”Johnny”

    chosen-railsによる検索機能付きセレクトボックスで、検索画面作成の手間を省く | Oh My Enter!
  • Railsで使いたい便利なgemまとめ - Qiita

    最近、実際に使っていて便利だと思ったものをまとめて紹介します! 他にも便利なものがいっぱいあって迷いましたが、とりあえず今回は7つに絞って紹介します! 【1】Better Errors Rails のエラー画面をわかりやすく Better Errors は標準のRails エラーページをさらに使いやすいエラーページに置き換えてくれます。 Rails の標準のエラー画面はこんな感じ↓ですが、 Gemfile に Better Errors を書き加えてインストールすると、 こんな感じ↓の画面に変えてくれます。 どこでエラーが起こっているのか表示してくれるので、エラーを見つけるのに役立ちます。 Rails のほかにも、Rack ミドルウェアとしての Rack app で使うのにも適しているそうです。 次の binding_of_caller とセットで使うととっても便利です。 【2】bindi

    Railsで使いたい便利なgemまとめ - Qiita
  • Rails Girls - Japanese

    Devise で認証機能を追加 Created by Piotr Steininger, @polishprince ** このガイドは、すでに RailsGrils アプリ・チュートリアル でアプリを作った方を対象にしています。 ** Step 0: devise gem を追加 アプリの Gemfile を開いて、次の行を追加します。

  • パフォーマンス監視サービスのNew Relicが超便利な件 - Qiita

    12/09/05 監視対象のWebサービスのURLを間違えていたため修正しました RailsのAdvent Calendarを待ちわびていました. 今回は,WEB+DBの最新号のRails高速化記事で紹介されていたパフォーマンス監視サービスのNew Relicを使ってみた話です. New Relicは.newrelic_rpmというgemをインストールすることにより,レスポンスタイムやスロークエリなど,パフォーマンスに関するさまざまな統計情報をNew Relicのサイトでみることができます. Railsに限らずPythonJavaなどいろいろな言語に対応しているようです. さらに,HerokuやDotCloudなどのPaaSにも対応していてやばい. HerokuのNew Relicプラグイン Herokuホストしたアプリケーションを監視するためにはNew Relicプラグインを導入する

    パフォーマンス監視サービスのNew Relicが超便利な件 - Qiita
  • created_atがTimeクラスになる現象 - Qiita

    モデルのtimestamp(created_at,updated_at)は通常、TimeWithZoneクラスのインスタンスですが、これがTimeクラスになる現象が発生しました。 Timeクラスになるとどうなるかと言うと、railsが時刻を扱う際には通常、DBにはUTCで格納し、入出力時にTimeZoneを加えるようになっていますが、これが行われないのでUTCのまま扱われ、viewにも当然UTCで出力されるようになります。 原因 せっかちな人のために結論を書くと、利用していた論理削除gemrails4_acts_as_paranoidが原因でした。 これをparanoiaに置き換えたところ解決しました。 以下、原因を調べた方法について書きます。 調査 まず、timestampがTimeWithZoneを返す正常なrailsアプリを用意し、DBを比較してみたところ、DBには差がないことが分か

    created_atがTimeクラスになる現象 - Qiita
  • よりよいView helperであるActiveDecoratorの使い方 - Qiita

    ActiveDecoratorを導入したきっかけ Helperにグローバル関数っぽいメソッドを追加するのが嫌だ Modelに表示に関するメソッドを増やすのが嫌だ ActiveDecoratorのGemをいれる gem 'active_decorator' amatsuda/active_decorator https://github.com/amatsuda/active_decorator Decoratorファイルを作る 普通に作ってもいいですがgeneratorが用意されています。 rails g decorator user /app/decorator/user.rbというファイルが作られます。このモジュールは自動でUserモデルにMix-inされます。(しかもViewのコンテキストの時だけ!) 例 公式にもあるサンプルです。姓と名を繋げてフルネームにするとか、linkのメソッ

    よりよいView helperであるActiveDecoratorの使い方 - Qiita
  • ActiveRecordで"type"という名前のカラムがあるとエラーが出る場合の対応 - Qiita

    [4] pry(main)> Kantai.find(1) Kantai Load (0.4ms) SELECT `kantais`.* FROM `kantais` WHERE `kantais`.`id` = 1 LIMIT 1 ActiveRecord::SubclassNotFound: The single-table inheritance mechanism failed to locate the subclass: '戦艦'. This error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this column if you didn't intend it to be used for stori

    ActiveRecordで"type"という名前のカラムがあるとエラーが出る場合の対応 - Qiita
  • Railsエンジニアならこれだけは知っておけっていう便利メソッド - (゚∀゚)o彡 sasata299's blog

    2011年07月26日13:29 Ruby Railsエンジニアならこれだけは知っておけっていう便利メソッド Object#presence と Object#try という便利なメソッドがあることをご存知ですか?この2つのメソッドはとっても便利なのでちょっと紹介してみます。 Object#presence メソッド これは以下のような定義となっています。 def presence self if present? end present? メソッドというのはみんな大好き blank? の反対のメソッド (!blank?) です。 つまり、nil, false, [](空配列), {}(空ハッシュ), ""(空文字列), " "(半角スペースだけの文字列)であれば false、それ以外であれば true になります(blank? って半角スペースだけの文字列を true と判定するの知って

    kakku22
    kakku22 2014/06/16
    Object#presence は使ったことなかった
  • Better Specs { rspec guidelines with ruby }

    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

  • RubyMine の使い方 - Qiita

    RubyMine とは Rails 用 IDE。 有料だが、自分の知る限りでは最強。 ちなみに姉妹製品 WebStorm の上位版という位置づけなので、HTML/CSS/JavaScript の開発にも使える。 どのへんが最強なの? 全般的に言えるのは「ちゃんと IDE になっている」ということ。 他の無料 IDE は少し特殊なことをやろうとするとターミナルでやるしかないとか、 プラグインをいろいろ入れて合わせ技で・・・ということが多々あるのだが、 RubyMine は自身でほぼ完結しており、IDE 上で実現されている。 (ターミナルでコマンド打った方が早い場合もあるが) MVC 単位の階層表示が可能なナビゲーション。 ジャンプ機能(メソッド定義部、アクションに対応するビューファイル等)。 補完が賢く、高速。 まともなデバッガ。 データベースの閲覧と編集。 クイックヘルプ。 VCS(Sub

    RubyMine の使い方 - Qiita
  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

    はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
    kakku22
    kakku22 2014/05/28
    "payment".pluralize は結構使える
  • 中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita

    TL;DR MVCもレイヤで捉えて関係性の設計をするといいのでは 普通のRubyオブジェクトを積極的に使いたいですね 「パーフェクト Rails」に期待しましょう 長くなって面倒くさくなり、途中から手抜き感が半端ないですが許してください この記事の位置付けなど 7 Patterns to Refactor Fat ActiveRecord Models - Code Climate Blog [翻訳] エリック・エヴァンスのドメイン駆動設計 エンタープライズ アプリケーションアーキテクチャパターン これらの参考文献を踏まえてRailsアプリケーションのリファクタリングをしていて、だいぶ方向性や考え方がまとまってきたので、これからチームに合流する人を想定読者に、Qiitaがどんな感じで作られているのかを文書化したものです。(参考文献の一覧は記事の最後にあります) 内容的には文献[2,3]を踏

    中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita
  • factory_girl で最低限知っておきたい4つの使い方 - (゚∀゚)o彡 sasata299's blog

    2013年08月22日13:26 Ruby factory_girl で最低限知っておきたい4つの使い方 みなさん、テストを書くときには Fixture Replacement として何を使ってますか?一番メジャーなところだと factory_girl でしょうか。machinist も有名ですね。シンタックスの違いのようなので基的にはどちらでも良さそうです。 参考(stackoverflowMachinist vs FactoryGirl - pros and cons In other words, both are extremely similar, just with a different default syntax. 今回は(僕が factory_girl4.2.0 を使ってるので)factory_girl4.2.0 についての話です。 インストール まずインストールし