タグ

Railsに関するmaangieのブックマーク (210)

  • [ANN] Rails 4.2.0.rc1 has been released!

    Happy Black Friday everyone! The Rails team is very excited to announce that the first Release Candidate of Rails 4.2.0 has been released today. For an overview of all the major changes, please refer to the release notes. We would like to thank everyone who have assisted our team in testing the beta and smoothing out all the rough edges. During the beta period, we have logged over 1500 commits by

    [ANN] Rails 4.2.0.rc1 has been released!
    maangie
    maangie 2014/11/29
    「Happy Black Friday everyone!」
  • ASCIIcasts - “Episode 257 - request specとCapybara”

    257: request specとCapybara  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto ハイレベルテストは、Railsアプリケーションをテストする優れた方法です。この種のテストでよく用いられるCucumberについて、エピソード155[動画を見る, 読む]で取り上げました。Cucumberの、アプリケーションの振る舞いを英語の文法で定義するやり方が好きではない人もいるでしょう。そこで今回はハイレベルテストを実行する別の方法を見てみます。 普段はテスト駆動開発を奨励していますが、今回はすでに完成したアプリケーションにテストを追加することにします。それによって、実装の詳細やアプリケーションが正常動作するかどうかに気をとられることがなくなります。これから

  • [Rails] STI(単一テーブル継承)とメタプログラミングでDRY - Qiita

    何も考えないで作ると、rock/pops/jazzそれぞれのモデル、ビュー、コントローラに 似たような記述・コピペが増えそうな予感を感じて頂けたでしょうか。 では、それを防ぐために、まずはSTIから。 (※追記) 実は上記だけの要件であれば userテーブル、musicテーブル、genreテーブルのみを用意して user has_many genres through musicsのassosiationでも実現可能 (そもそもrock/pops/jazzモデルを用意する必要がない)だったりします。 実際は「今後それぞれのgenreごとに特有な処理を複数追加していきたい」というケースを想定して、 各genre個別のモデルを用意することを前提にしています。 ちょっと要件の例がいまいちだったかもしれず、申し訳ありません。。 STI(Single Table Inheritance/単一テーブル

    [Rails] STI(単一テーブル継承)とメタプログラミングでDRY - Qiita
  • Railsでデバイスの判定をするのに便利なgemを作った - k0kubun's blog

    rack-user_agent を作った rack-user_agentという、User-Agentに応じていろいろな判定ができるメソッドを生やすRack::Request拡張を作った。 tagomorisさんのWootheeを使ってRack middlewareでUser-Agentをパースしておいて、 その結果に応じてrequestから簡単にいろいろな情報を得られるようにしてある。 たとえばRailsだとGemfileにgem "rack-user_agent"と書くだけで以下のように使うことができる。 class ApplicationController < ActionController::Base before_action :set_request_variant def index # example request.user_agent #=> "Mozilla/5.0

    Railsでデバイスの判定をするのに便利なgemを作った - k0kubun's blog
  • RSpec Capybara Webkit Xvfb CentOS 要するにRailsでjavascriptをテストしたい

    RSpec + Capybara のセットアップは簡単でいいんですが、javascriptのテストができません。 いざ当にウェブサイトやウェブアプリのテストしようと思ったらjavascriptのテストは必須。 それを可能にするには意外にも長い道のりがあるので、まとめておきます。 想定する開発環境はこんな感じ。 Vagrant (Virtual box) CentOS 6.4 ここでつまずいたらドットインストールで学習 ローカル開発環境の構築 (全12回) - プログラミングならドットインストール Vagrant入門 (全13回) - プログラミングならドットインストール Rails4 RSpec Capybara テストについてよくわからなければ、このチュートリアルで学習。 Ruby on Rails チュートリアル:実例を使って Rails を学ぼう テスト駆動開発の定義とは、アプリケ

    RSpec Capybara Webkit Xvfb CentOS 要するにRailsでjavascriptをテストしたい
  • ActiveRecordの基本機能とマイグレーション、バリデーション

    条件に当てはまるレコードを全て取得する「where」メソッド whereメソッドはカラムの値に条件を付けて該当するレコードを全て取得するためのメソッドです。findメソッドとは異なり、数値の範囲や文字列の一致など、検索機能を実装する際に使います。 whereメソッドの基とプレースホルダー 例として、これまでに保存したユーザーの中から30歳以上のユーザーを求めてみましょう。 User.all.map{|user| [user.name, user.age]} # => [["アリス", 30], ["ボブ", 32], ["キャロル", 28]] users = User.where("age >= ?", 30) users.pluck(:name)# => ["アリス", "ボブ"] このwhereメソッドでは第1引数に条件である文字列、第2引数では第1引数の文字列内の「プレースホルダ

    ActiveRecordの基本機能とマイグレーション、バリデーション
    maangie
    maangie 2014/11/11
    “pluckメソッドはActiveRecordオブジェクトを生成しないで要素を返却するため高速に動作するので、筆者は利用できる場面ではなるべく利用するようにしています”
  • ActiveRecordの基本機能とマイグレーション、バリデーション

    ActiveRecordの基機能とマイグレーション、バリデーション:開発現場でちゃんと使えるRails 4入門(5)(1/3 ページ) エンタープライズ領域での採用も増えてきたRuby on Railsを使ってWebアプリケーションを作るための入門連載。最新版の4に対応しています。今回は、Railsのモデル機能を担うActiveRecordの基的なメソッドに加え、where、order、limitを紹介。DBマイグレーションやバリデーションも。

    ActiveRecordの基本機能とマイグレーション、バリデーション
    maangie
    maangie 2014/11/11
    「pluckメソッドはActiveRecordオブジェクトを生成しないで要素を返却するため高速に動作するので、筆者は利用できる場面ではなるべく利用するようにしています」
  • Is Rails Slow?

    Slides for Rails Israel 2014 talk "Is Rails Slow?" http://railsisrael2014.events.co.il/

    Is Rails Slow?
  • Rails4.1のsecrets.ymlはfigaroと違うの? - ぴよログ

    Rails4.1が正式にリリースされたらしいので少し見てみたけど、secrets.ymlとかいうのがサポートされるようになったんですね。 公開したくないAPIキーなどの情報をconfig/secrets.ymlに書いておくとRails内でアクセスできるのだとか。 こうやって書いておくと # config/secrets.yml development: secret_key_base: cfcc784a39.... hoge_api_key: hogehogehoge こう呼べる。 Rails.application.secrets.hoge_api_key で、このsecrets.ymlをソース管理から外しておけばその他は公開できるよね、みたいな。他のサービスと連携するオープンソースなRailsアプリにするときなんかに使えばいいんだと思います。 Figaroと一緒では 同じことをするため

    Rails4.1のsecrets.ymlはfigaroと違うの? - ぴよログ
  • Rails + RSpec + Capybara で Devise での認証ログインが必要なインテグレーションテスト(RequestSpec)を行う | EasyRamble

    Rails で Devise で認証機能を作り、テストに RSpec を使う場合、sign_in, sign_out のテストヘルパーが使えます。詳細は以下ページのテストヘルパー(RSpec)の項目を参照。 Rails4 にて Devise でユーザー登録・ログイン認証・認可の機能を追加 | EasyRamble しかし、これらの sign_in, sign_out のヘルパーは、Capybara や Webrat を用いた integration tests(インテグレーションテスト)では動作せず、fuctional tests だけで動作するという注意点があります。サインインさせる場合は、代わりにフォームを埋めるか明示的にセッションをセットする必要がある。 以上の注意点より、spec/requests 内のインテグレーションテスト(結合テスト:RequestSpec)を行う場合は、工夫

    Rails + RSpec + Capybara で Devise での認証ログインが必要なインテグレーションテスト(RequestSpec)を行う | EasyRamble
  • RSpec Rails 6.0 - RSpec Rails - RSpec - Relish

    rspec-rails extends Rails' built-in testing framework to support rspec examples for requests, controllers, models, views, helpers, mailers and routing. rspec-rails 6 supports Rails 6.1 to 7.0. For earlier versions of Rails, you should use rspec-rails-5 for Rails 5.2 and 6.0, rspec-rails-4 for Rails 5.x, and rspec-rails 3 for even older versions. Install gem install rspec-rails This installs the fo

  • TDDを諦めることと、RSpecをやめること - 高柴ラボ

    2014-10-17 TDDを諦めることと、RSpecをやめること Ruby on Rails Ruby RSpec 開発手法 最近Web上でも仕事場でも、RSpecをやめて別のテストフレームワークに変えようと思っている……みたいな話をちょくちょく見聞きするようになった。僕がRuby on Railsで開発を始めた2012年8月当時、すでにRSpecはテストフレームワークのデファクトと言ってよかった。一斉を風靡したRSpecが、なぜ今見直され始めているのか。 きっかけになったのは今年4月の、Rails作者であるDavid Heinemeier Hansson(以下DHH)によるTDD is dead発言だと思う。 5月にはこの発言によるTDDへの風評被害を重く見たKent Beck*1が、レフリーにMartin Fowler*2を迎え、DHHと相対するドリームマッチが開催された。この会談の

  • 革命的に速いRubyアプリケーション・サーバー「Raptor」リリースへ | ソフトアンテナ

    革命的に速いとされるRuby用の新しいアプリケーション・サーバー「Raptor」のサイトが公開され期待を煽っています(Hacker News)。 公式サイトによると、RaptorはRailsやSinatraなどを動かすための新しいアプリケーション・サーバー。最適化されたHTTPエンジンにより従来のアプリケーションサーバーと比較して高速に動作し、Unicornの最大4倍、PumaとTorqueboxの最大2倍の速度で動作するとのこと。 現在まだ何もダウンロードできるものは公開されたおらず、パブリックベータ版のリリース日は2014年11月25日に設定されています。メールアドレスを登録しておくと、状態が更新されるか、あるいは第三者のレビューが公開されたときなどにメールで連絡してくれるようなので気になった方は登録してみてはいかがでしょうか。 ちなみに誰が開発されているかということに関しても「We

    革命的に速いRubyアプリケーション・サーバー「Raptor」リリースへ | ソフトアンテナ
  • RSpec3.1の主な変更点をまとめてみた

    RSpec / Ruby もう1週間経ってしまいましたがRSpec3.1がリリースされたので勉強がてら主な新機能・変更点をまとめてみました。 なお、この記事はMyron Marstonの記事の要約になっています。 Backtraceフィルタの変更 RSpec3.0では表示していなかったgemの中のbacktraceをデフォルトで表示するようになっています。 非表示にする場合は以下を設定します。 RSpec.configure do |config| config.backtrace_exclusion_patterns << /gems/ end 特定のgemのbacktraceを非表示にすることもできます。 RSpec.configure do |config| config.filter_gems_from_backtrace "rack", "rake" end –exclude-p

    RSpec3.1の主な変更点をまとめてみた
  • Railsでよく使う便利なGemまとめ - 惰眠と論理と指揮棒と

    2014-10-09 Railsでよく使う便利なGemまとめ Ruby Ruby On Rails Railsでよく使う便利なGem 一つ一つは細かく説明しませんが、よく使ってる便利系Gemをつらつらと awesome_print consoleの出力を綺麗にしてくれる デバック時にいい感じ! awesome_print無し awesome_print有り paranoia 論理削除の手助けをしてくれる uniqバリデーションで、論理削除されたものを対象に含めたくないならこれも入れとくといい paranoia_uniqueness_validator rails_config 定数を管理するGem 環境ごとに読み込む定数を変更できるので便利 使い方とかはこちらにまとまってます Ruby - Railsで定数を環境ごとに管理するrails_config - Qiita Ruby - R

    Railsでよく使う便利なGemまとめ - 惰眠と論理と指揮棒と
  • Rails 4.2で導入されたActive Jobを使ってみよう - Qiita

    Active Jobとは? Ruby on Rails(以下Rails) 4.2からバックグラウンドでジョブを実行するActive Jobが利用できるようになりました。 Active Jobを利用することによって、メールの送信や、バッチ処理などをバックグラウンドで実行することが可能になります。 Railsで利用できるバックグラウンドでのジョブ実行の仕組みとしては、Delayed Job, Resque, Sidekiqなどがありますが、Active Jobはこれらのアダプタとなって動作します。 Active Jobは、ジョブスケジューリングを抽象化するAPIを備えており、異なるジョブ実行の仕組みに移行(たとえばDelayed JobからResqueへ移行)しても、コードをほとんど変えることなく実行することができます。 Active Jobを使うための準備 Resqueのセットアップ 今回は

    Rails 4.2で導入されたActive Jobを使ってみよう - Qiita
  • Railsで大きなファイルを扱う際のポイント|TechRacho by BPS株式会社

    Railsで大きなファイルを扱う際のポイントをまとめてみました。 前提 大きなファイルとは だいたい100MB~10GBくらいのファイルをダウンロード・アップロードするのを想定することにします。 数MB程度だと、特別な工夫なしでもそれほど問題になりません。10GBを超えてくると、気をつけるべき点が変わってくるかと思います。 以下では主にサンプルとして、1GBのファイル(ISOファイルやZIPファイルなど)を想定します。 環境 以下のような環境を想定します。 Railsは4系 Nginx + Unicornのスタンダードな構成 サーバ1台のシンプルな構成(ロードバランサを使用した複数台構成については、末尾に少し記載しています) ダウンロード ファイルのダウンロード まずは、Railsアプリから大きなファイルを配信するケースを考えましょう。 たとえば、ISOファイルをサーバ内に保存しておいて、

    Railsで大きなファイルを扱う際のポイント|TechRacho by BPS株式会社
  • Railsでinitializersに書いた内容をdevelopmentモードで再読み込みさせる - Qiita

    外部APIに接続するようなクラスの設計 Railsで外部のAPIサービスにつなぐクラスなどを書く際に、将来的にGemにすることを見越してできる限りそのプロジェクト自体に依存しないように設計すると思います。(ここでいう、「依存しない」とは、たとえばそのプロジェクトのSettingsLogicをこのクラスから見に行かないなど。) ここで、外部のAPIが接続時にAPIキーと、トランザクション毎に変わる情報を渡さないといけないとすると、APIキーは一度Railsを立ち上げると変わらないのでクラスに持たせて、トランザクションは引数で渡す、ということをやると思います。 class ExternalServiceAdapter include ActiveSupport::Configurable config_accessor :api_key def create_transaction(trans

    Railsでinitializersに書いた内容をdevelopmentモードで再読み込みさせる - Qiita
  • Rails 4 へのアップグレード時に遭遇した問題 - クックパッド開発者ブログ

    技術部の鈴木 (@eagletmt) です。 クックパッドでは8月に体アプリケーションや API サーバ等で使われている Rails のバージョンを 3.2 から 4.1 へ順次アップグレードを行いました。 アップグレードは主に松田さん (@amatsuda) と私で進めました。 この記事ではアップレードの際に遭遇した問題の一部を紹介します。 MySQL strict mode の有効化 MySQL を使っている場合、Rails 4.0 からデフォルトで @@SESSION.sql_mode = 'STRICT_ALL_TABLES' が最初に実行されるようになりました (Ruby on Rails 4.0 Release Notes) 。 これを無効化するために database.yml で strict: false という設定が用意されています。 しかし、同じく Rails 4.0

    Rails 4 へのアップグレード時に遭遇した問題 - クックパッド開発者ブログ
  • 『パーフェクト Ruby on Rails』を読んだ - きにきじ

    『パーフェクト Ruby on Rails』(すがわらまさのり, 前島真一, 近藤宇智朗, 橋立友宏)を読みました。「Rails 開発に慣れてきたかな」くらいの人にちょうどいい内容だったと思います。それくらいレベルの人が少し上を目指したり、より Rails らしい設計や開発の仕方を学んだりするのにいい書籍だと思いました。Ruby 2 や Rails 4 向けの説明になっているので、新しめの情報を得たいような場合にもお薦めです。逆に、最新の RubyRails でバリバリ開発しているような人には既知のことばかりで物足りないんじゃないかなという印象です。 全体的に興味はあったのですが、購入の決め手となったのは第9章「より実践的なモデルの使い方」です。どう設計するか、どうリファクタリングするかの1つの指針として読んでみたいと思いました。実際に読んだ感想としては、学びも多く、読んでよかったと