タグ

ブックマーク / www.ohmyenter.com (12)

  • 【実践】Railsにて検索結果をそのままCSV出力する(やや手抜きで) | Oh My Enter!

    Webアプリケーションにとって、検索画面は無くてはならないものだと思います。典型的な検索画面といえば、ヘッダー部分に検索条件を入力するフィールドがあり、その下に結果一覧が表示されるもの。 さらに顧客の要望としてよく挙がるのが、「検索結果をExcelで見たい」というもの。みんなExcel好きですよねー(私も大好きですが)。 というわけで、CSV出力機能付きの検索画面を(なるべく手抜きで)実装してみよう思います。 筆者の環境 Rails 4.0.3 (別に4じゃなくても動くと思います) Scaffold まずはCustomerモデルを作成しましょう。サンプルアプリなので、scaffoldで済ましてしまいます。 📄Gemfile $ rails g scaffold Customer name:string birthday:date sex:string address:string $ r

    【実践】Railsにて検索結果をそのままCSV出力する(やや手抜きで) | Oh My Enter!
  • 【実践】RailsでExcelレポート出力(その2) | Oh My Enter!

    前回は作成したExcelがダウンロードできるところまで実装しました。今回はそのExcelの内容を動的に変更して出力します。 Viewの編集 とりあえず、ダウンロードしたExcelを見てみましょう。(ダウンロード ※拡張子はxmlに変更してください) 各値はこのExcelを作ったとき入力した固定値のままです。というわけで、これらの値を動的な値にしていきましょう。 行(日付)を動的に まずは、日付を動的に出力することにしましょう。app/views/report/output.xls.erb を開きます。そして以下のような箇所を探し出しましょう。 📄output.xls.erb ... <Row ss:Index="3" ss:AutoFitHeight="0" ss:StyleID="s65"> <Cell ss:Index="2" ss:StyleID="s66"><PhoneticTe

    【実践】RailsでExcelレポート出力(その2) | Oh My Enter!
  • 【実践】RailsでExcelレポート出力(その1) / Oh My Enter!

    業務アプリケーションであれば、必ずと言っていいほど、レポート出力機能を作成する必要があるでしょう。PDF出力でよいのならThinReportsがオススメですが、Excelで出力したいことも度々ありますよね。今回はその方法をチュートリアル的にご紹介します。 環境 Rails 4.0.2 Excel 2007 Mac OS X 10.8 出力するレポート 完成イメージです。日別・商品別の売上をクロス集計したレポートです。これをRailsから出力します。 サンプルアプリのER図 Product(商品)モデルとSale(売上)モデルの2つだけです。Product has_many Sales の関係になっています。 まずはExcelで完成イメージを作る Excelを起動して、普通に完成イメージを作成します。サンプルの完成イメージは以下のように作成してみました。 その他にも・・・ ページフッターに

    【実践】RailsでExcelレポート出力(その1) / Oh My Enter!
  • rails_sortableでマスタをラクラク並び替え | Oh My Enter!

    rails_sortableというgemを作成しました。並び順をもつマスタってよく使うと思いますが、当gemはドラッグ&ドロップによる並び替えを実現するためのプラグインです。ビデオを見ていただくと、イメージが湧くかと思います。 粗い仕様なのでイマイチいけてないですが、一般的な用途には使えるかと思い公開しました。 itmamoth/rails_sortable @ github rails_sortable @ rubygems 導入方法は、githubのREADME読んで下さい。ツッコミ、フォーク、大歓迎です。

  • 自分はこんな感じでRailsアプリを作っております | Oh My Enter!

    Railsを使い始めてX年経ったこともあり、自分なりの開発パターンが形成されていることに気づきました。今日はそれを恥ずかしげもなく晒してみようかと思います。 Gemfile 自分の中で必須のgemたちです。その他はプロジェクトに合わせ適宜追加する感じです。 📄Gemfile source 'https://rubygems.org' ruby "2.0.0" gem 'rails', '~> 4.0' gem 'sqlite3' gem 'sass-rails' gem 'uglifier' gem 'coffee-rails' gem 'jquery-rails' gem 'turbolinks' gem 'jbuilder' gem 'draper' gem 'ransack' group :development do gem 'rack-mini-profiler' end gr

    自分はこんな感じでRailsアプリを作っております | Oh My Enter!
  • Testing like the TSA by David of 37signals(和訳) | Oh My Enter!

    少し前の記事ですが、Ruby on Railsの生みの親Davidが最近のTDDについて苦言を呈しています。賛否両論あると思いますが、大変参考になるポストなので、勝手に和訳してみました。(誤訳等ありましたら、ツッコミ願います) (原文はコチラ) TSAロックのようにテストする 最初、開発者はテスト駆動開発に驚きを感じ、ストレスや不安の少ない素晴らしい世界の入り口に立ったかのような気になるんだ。確かにそれは素晴らしい経験で祝福すべきことだ。しかし、テストによる恩恵を自分のものにすることは、悟りの第一段階にすぎない。何をテストすべきでないかを知ることはさらに難しいことなんだ。 初日から何をテストすべきでないかなんて気にしなくていい。2日目から始めればいい。人間とは習性をもつ生き物で、『テストのしすぎ』という悪い習性を早くから身につけてしまうと、後から振り落とすことは難しい。だから、早めに振り落

  • 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!
  • simple_formとTwitter bootstrapで作る俺流鉄板Railsアプリ(その2) | Oh My Enter!

    前回に引き続き、Railsアプリにて simple_formtwitter bootstrapを使用する際のtipsをご紹介したいと思います。まずは前回作成した画面を見てましょう。 前回はTitleに必須バリデーションを付加しました。今回はReview項目を編集してみたいと思います。 このReviewという項目には、の評価を1〜5の数字で入力してもらうと仮定しましょう。さっそく、models/book.rbにバリデーションを記述します。 📄app/models/book.rb class Book < ActiveRecord::Base validates :title, presence: true validates :review, numericality: { only_integer: true, greater_than_or_equal_to: 1, less_t

    simple_formとTwitter bootstrapで作る俺流鉄板Railsアプリ(その2) | Oh My Enter!
  • simple_formとTwitter bootstrapで作る俺流鉄板Railsアプリ(その1) | Oh My Enter!

    エンジニアであれば、みな自分流の開発流儀をお持ちだと思います。PHPでWebアプリを開発する際はこのフレームワークを使うだとか、Railsアプリの場合はこのgemを使用するだとか・・・。私がRailsアプリを作成する際の鉄板といえば、simple_form+twiter bootstrapを使用することです。simple_formは、入力フォームを簡単に作成するお手伝いをしてくれるView用のgemtwitter bootstrapは(説明するまでもないかもしれませんが)Twitterが公開しているcssフレームワークです。デザインが苦手なエンジニアにでも、それなりに見栄えの良い画面が簡単に作れるので、非常に重宝しています。 simple_form: https://github.com/plataformatec/simple_form twitter bootstrap: http:

    simple_formとTwitter bootstrapで作る俺流鉄板Railsアプリ(その1) | Oh My Enter!
  • Railsアプリを『浅く』パフォーマンス・チューニングしてみる(その2) | Oh My Enter!

    前回は『N+1件』問題を解決して、パフォーマンスを改善することができました。今回はページ表示部分(View)に関する処理を変更することでパフォーマンスを改善したいと思います。 まずは、前回終了時点のパフォーマンスを確認しておきましょう。 だいたい1秒弱かかっているようですね。そういえば前回、クライアントマシンのスペックを記載するのを忘れていました・・・筆者は Mac Book Air 2012 mid (デュアルコア2.0GHz Intel Core i7)/メモリ8G を使用しています。 それでは、チューニングを初めましょう! パフォーマンス・チューニング2:Viewヘルパー さらなるパフォーマンスの改善を行うためには、どの処理に負荷がかかっているのかを知ることが不可欠です。rack-mini-profilerの表示を確認し、当たりをつけましょう。『959.0ms』という部分をクリックし

    Railsアプリを『浅く』パフォーマンス・チューニングしてみる(その2) | Oh My Enter!
  • Railsアプリを『浅く』パフォーマンス・チューニングしてみる(その3) | Oh My Enter!

    前回はView周りのパフォーマンス・チューニングを実施しました。今回はクライアント側、すなわちJavascriptのチューニングを『浅〜く』実施してトピックを終了したいと思います。 パフォーマンス・チューニング3:Javascript チューニングを始める前に、rack-mini-profilerで現在のパフォーマンスを確認しておきましょう。 『161.6 ms』と十分なスピードを叩き出していますね。しかし、実はこれはサーバサイド側の処理時間なのです。クライアント側の処理時間は詳細ウインドウの下段に表示されています。 つまり、173msにレスポンスを受け取り → 247msからブラウザで描画を開始し → 418msにDOM構築が完了(DOMContentLoadedイベント発火)、 103ms費やしてJavascriptを処理した・・・ということになります。 チューニングの対象となるのは

    Railsアプリを『浅く』パフォーマンス・チューニングしてみる(その3) | Oh My Enter!
  • Railsアプリを『浅く』パフォーマンス・チューニングしてみる(その1) | Oh My Enter!

    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件の

  • 1