RailsのRakeタスク作成〜RSpecでのテストまでの流れをまとめました。 できるだけシンプルにまとめたので、Rakeタスクの作成にはじめてトライされる方はぜひご一読ください。 02/13 22:10全体的に説明書きを書き直し 😼 Rakeタスクファイルの作成次のコマンドを実行すると、Rakeタスク用のファイルがlib/tasksの下に作成されます。 (reportsの部分は任意の名前に変更してください)
連日酒を飲み続けた結果喉がやられ、職場の人に風邪を心配された田中洸一(@tanaka51) です。 みなさん、テストは書いていますか? 今回は(x モックライブラリ) Fixture Replacement (9/24修正。@kompiro さんありがとうございます。)として有名な …連日酒を飲み続けた結果喉がやられ、職場の人に風邪を心配された田中洸一(@tanaka51) です。 みなさん、テストは書いていますか? 今回は(x モックライブラリ) Fixture Replacement (9/24修正。@kompiro さんありがとうございます。)として有名な FactoryGirl の便利な機能について書いてみたいと思います。 FactoryGirl は進化の速いライブラリのようで、現在パッと確認できる日本語の記事やチートシート等は古くなってしまっています。 最新情報は Github
simple and powerful object generation for Ruby Getting Started What is Fabrication? Fabrication generates objects in Ruby. Fabricators are schematics for your objects, and can be created as needed anywhere in your app or specs. Fabrication can generate anything, but has specific support for ActiveRecord Models, Mongoid Documents, Sequel Models, and DataMapper Resources. Installation Fabrication is
澳门六合官网【官方直营-信誉品牌】澳门六合官网实力打造全网顶级信誉、高赔率、最稳定的娱乐服务平台,24小时客服在线,首充就送,提现秒到账,澳门六合官网欢迎您的加入...
Seed Dataをマイグレーションから隔離するための仕組みが追加された。 これの一番の意図としては 「マイグレーションの中にデータをいじるコードを含めるのやめようぜ。な!」 ってことのようだ。 参考: http://github.com/rails/rails/commit/4932f7b38f72104819022abca0c952ba6f9888cb Seed Dataって? まあなんとなくニュアンスは分かるけど、そもそもSeed Dataって何なんだという疑問。 Rail Spikes: Loading seed data Ryan’s Scraps: What’s New in Edge Rails: Database Seeding 上記を参考にすると ほとんど変更されないデータ 例: Userテーブルの管理者アカウントのような初期データ 例: アプリケーションの設定のためのデ
8月 7th, 2012 • rails 前回のRailsのシードファイルのつくりかた①の続き rake db:seedを複数回やっても、データが重複して保存されない方法を書いていく。 サンプルデータは、 number 1 name ”佐藤” mail ”sato@mail” ケース3 見慣れないと思うが、find_or_create_byメソッドを使う。 このメソッドは、データベースの中に同じデータがあったら、それを返し、なかったら、新しいデータを生成し、 データベースにいれていく。名前のとおり、findして、だめだったら、createするという意味。 具体的には、 find_or_create_by_カラム1_and_カラム2_and_カラム3( カラム1の値, カラム2の値 , カラム3の値 )と使う。 seed.rb find_or_create_by_number_an
「効率よく仕事をしたければ、ひとつのことに集中しなさい。一度にいろいろなことをしてはいけません」 こう言われた経験が何度となくあるのではないでしょうか。 しかし私たちはその忠告を忘れてしまい、気が付くとノートパソコンを開いたままテレビの前でランチを食べていたり、TwitterやFacebookを見ながらメールを送ったり、さらにはGoogle+でチャットまでしていたりします。 課題、計画などで、何かひとつのことだけに集中するのはとても難しいものです。いったいなぜでしょうか? 人がマルチタスクを好むのは、良い気分になれるから ひとつのことに集中すべき時に、いわゆる「マルチタスク」をしてしまうのはなぜでしょうか。とある研究によると、この理由は非常にシンプルなものでした。 (マルチタスク習慣のある人は)あまり生産的だとは言えません。彼らは自分が取り組んでいる作業から、さらなる精神的な満足感を得たい
factory_girlの使い方第二弾です。今回は、GETTING_STARTEDに書かれていることを黙々と書いていきます。 前回はこちら。 使用したバージョンなど 今回使用したバージョンは factory_girl_rails 3.0.0 factory_girl 3.0.0 を使用しています。 データの作成方法 factory_girlでデータを作成する方法は幾つかあります。最も一般的なのは、データをデータベースに保存するもの。FactoryGirl.createを使います。 irb(main):010:0> u = FactoryGirl.create(:user) (0.1ms) begin transaction SQL (0.7ms) INSERT INTO "users" ("created_at", "email", "name", "updated_at") VALUES
Google+ボタン はてなブックマークボタン 更新日時: 2014年02月25日(火) 作成日時: 2013年08月06日(火) 前の記事 / 次の記事 Fixtureは充分にイケてると思っているので、基本Fixtureで満足なんだけど、 Fixtureにできないことをするために、FactoryGirlを使ってみようと思い立ったメモ。 自分が知らないだけでFixtureできるのかも知れないけど、 DBに保存はしないけど値だけ欲しい時がある。 Rspecで言うと "valid_attributes" である値。 今までは自力で適当にモジュールつくって読み込んでたんだけど、 折角FactoryGirlってgemがあるんだから使ってみようかと思った。 ※ 適当にどんどん追加していったらかなり長くなってしまったので 暇が訪れたらまとめて新しい記事にしたいと思う(2014/02/25) 何年後にな
Google で alias_attribute を検索しても日本語のページが6件しか引っかからないので一応メモしてみる。 クラスの属性に別名をつけたい場合のために、ActiveSupport では Module#alias_attribute というメソッドが用意されている。 たとえば、ブログの記事を保持する posts テーブルに subject というカラムがあるんだけど、あとから title という名前でも参照したくなった、という場合は下のようにする。 class Post < ActiveRecord::Base alias_attribute :title, :subject endこれだけ。alias や alias_method に対するメリットは alias は「その時点での」名前に対する別名を作成するので、先に「元のメソッド」が定義されている必要がある。なので、上の A
Rails のテストを書いていて、フィクスチャはのちのちメンテナンスに苦労しそうだから FactoryGirl を使ってみた。 FactoryGirl についてはここが詳しい http://www.func09.com/wordpress/archives/532 上のページの例にあるとおり、中間テーブルを使うようなケースでテストデータを定義するのに便利らしい (公式ページ?でもそのように宣伝していた) のだが、中間テーブルが不要な has_many/belongs_to の関係を定義するときに、 association を親子どちらに書くかでハマってしまった。 すぐ動かせるコード例がなくて恐縮だけど、 FactoryGirl で has_many/belongs_to な association を定義するときは、必ず子のほうに親の Factory を書かないといけないっぽい。このスレッ
factory_girlネタも今回で3回目。今回は関連について書いていきます。 前々回はこちら。 前回はこちら。 使用したバージョンなど 今回使用したバージョンは factory_girl_rails 3.0.0 factory_girl 3.0.0 を使用しています。 関連データの記述方法 postsテーブルを次のように作成して、userへの参照を持たせるようにします。 class CreatePosts < ActiveRecord::Migration def change create_table :posts do |t| t.string :title t.text :body t.references :user t.timestamps end add_index :posts, :user_id end end また、Postモデルにbelongs_toを書いておきます。
環境 rails 3.1.1 factory_girl 2.2.0 requireでfactory_girlとfactoryファイルすべてを読み込むと、seeds.rbでもfactory_girlが使えます。seeds.rbでfactory_girlを使うのは、テストと同じデータをブラウザでも確認できる、seeds.rbを非常に簡潔に書くことができる、といった利点があります。 以下の例では、このようなデータを作成する例です。 特定のユーザーを含む6人のUserインスタンスを作成 100件のArticleインスタンスを作成 100件のArticleインスタンスはそれぞれ、6人のうち1つのuser_idをランダムにふられる db/seeds.rb require 'factory_girl' Dir[Rails.root.join('spec/support/factories/*.rb')]
テストをちゃんとやろうと試みた事は何度かあった。 でもfixture書くのがダルくてテストを書くまで辿りつけず挫折。 DBのデータからfixtureを作る方法もあるけど、それだとデータが大量すぎて扱いきれない。 でもやっぱりテストはやっておいた方が安心だよなぁと思う今日この頃。 安心というか自分のコードに自信が持てなくなってきたので要所要所はテストしておきたい。 しかしfixtureを書くのがだるい。 そもそもfixtureってDRYじゃない気がする。 そこでふと思いだしたのは「database.yml って DRY じゃないよね。」という話。 http://d.hatena.ne.jp/Rommy/20070731/p1 http://rubyist.g.hatena.ne.jp/Ubuntu/20080709/erb_on_yaml あたりで紹介されてます。 Railsのyamlはer
fixtureを手で作るのはとても疲れるので、DBから自動生成したり、FactoryGirlをはじめとしたFixture alternativeを使うことが多いと思います。 DBからfixtureのYAMLを生成する方法は色々見つかりますが、今回は要件を満たすものが見つからなかったので、rakeタスクを作ってみました。 複数行テキストやコロン(:)が含まれるテキストを、正しく処理できないものが多いんですよね。 今回はこのような要件を満たすようにしました。 MySQLで動作する テーブルを指定できる 複数行のテキストフィールドを処理できる IDやモデルファイルが無いテーブル(HABTM用中間テーブルなど)に対応する 以下のようなファイルを、lib/tasks/extract_fixtures.rakeとして保存し、 rake db:fixtures:extract すると、tmp/fixtu
Palettaは顕色系 (色相, 明度, 彩度) をベースに「調和のとれた色」だけを集めたカラーパレットです. 色を選択すると, 周囲の色が同系統の色に変わります. 画面上部のResetボタンを押すと, 色の選択が解除されます. カラーコードをクリックするだけでコードをクリップボードへ簡単にコピーできます. 詳しく
Paletta - HSV Color palette for every Programmer 背景 フラットデザインの台頭によって、昨今のアプリ/サービス開発において「色選び」が重要視されています。例えば上の写真は次のトイレの時刻を機械学習で予測するRestCastというアプリですが、「いい感じの青」を基調としたタイルを敷くことで、トイレというワードをニオワセないデザインに仕上がるよう心がけてつくりました。 デザイナー/プログラマーの皆さんは普段どうやって色を選んでいるのでしょうか。多くの場合、既存のカラーパレットをぽちぽち選択したり、#123456のようなカラーコードを調整するのではないかと思います。実は、この方法で「いい感じの色」を選ぶのは難しいのです。その理由を色の表現方法を踏まえて説明します。 混色系と顕色系 色を数値で表現する方法を表色系といいます。オストワルト表色系やマンセ
OCNでの不正ログイン、パスワード流出の原因はロジテック製ルータの脆弱性:リモートから機器調査を実施、個別に対応を依頼へ NTTコミュニケーションズ(NTT Com)は2013年8月20日、6月に発生した不正ログインの原因が、特定の無線LANブロードバンドルータの脆弱性にあった可能性が高いことを公表。OCNユーザーを対象にしたセキュリティ調査を10月31日までの間実施する。 NTTコミュニケーションズ(NTT Com)は2013年8月20日、6月に発生した不正ログインの原因が、特定の無線LANブロードバンドルータの脆弱性にあった可能性が高いことを公表した。同社はさらなる不正利用を防止するため、OCNユーザーを対象にしたセキュリティ調査を10月31日までの間実施する。当該機器を利用している顧客には個別に、ファームウェアアップデートなどの対応を依頼するという。 OCNへの不正ログイン事件は、6
JointJSはJavaScript製のオープンソース・ソフトウェア(Mozilla Public License)です。 Web上で図を表示したいと思うことは多々あります。そんな時に画像を使うのは最も知られた方法ですが、再利用性や修正コストが大きくなります。図にもよりますが、JointJSがカバーできる範囲は大きいのではないでしょうか。 こんな複雑な図の描画も行えます。 マウスオーバーで線の削除ができます。 線のポイントを変更して曲がり方を変えることもできます。 組織図。こちらも移動ができます。 ER図。リレーションの関係も表せています。 DEVSの図とのこと。 チェス。オブジェクトの動きはチェス盤上に固定されます。 アニメーション付きの図です。 リンクの表現も多様です。 UMLのクラス図。 ステートチャート図。 JointJSでは多様な図を描くことができます。図はドラッグして動かすこと
前のページ カテゴリへ戻る Railsでトランザクション処理をしよう(transaction) 更新日 2009/06/03 作成日 2008/10/24 それではRuby on Railsでトランザクション処理する方法を説明していきます。 こちらで説明した処理を例にします。なお、テーブル名はokanes、モデル名はOkaneとします。 class TraController Okane.transaction { #Aさんのお金を現在の残高から50,000円減算する処理 asan=Okane.find(1) asan.price=asan.price - 50000 asan.save! #Bさんのお金を現在の残高から50,000円加算する処理 bsan=Okane.find(2) bsan.price=bsan.price + 50000 bsan.save! } #処理がうまく
複雑なCSSを自分で書かなくてもHTMLのマークアップで簡単に美しい比率のグリッドレイアウトを構成でき、分かりやすいボタン、パンくずリスト、メニューなどのWebページを記述できるCSSフレームワーク、「Bootstrap」の最新版「Bootstrap 3」が公開されました。 Bootstrap 3ではモバイルファーストを意識したデザインとなり、ボタンやメニューなどはフラットデザインを採用。 公開されのは現地時間8月19日で、Bootstrapの2周年にあたる日でした。 Bootstrap 3のテンプレート例 下記はBootstrap 3ではさまざまなテンプレートがの用意されていますが、下記もそのテンプレートの1つ。
ワコムは、OSを搭載した13.3型モバイル液晶ペンタブレット「Cintiq Companion」を発表した。発売時期は9月下旬。価格はAndroid4.2搭載の「Cintiq Companion Hybrid」の「Entry」が15万8,000円、「Extend」が16万8,000円。Windows 8搭載の「Cintiq Companion」の「Entry」が19万8,000円、「Extend」が24万8,000円。 Windows 8搭載の「Cintiq Companion」(左)、Android4.2搭載の「Cintiq Companion Hybrid」(右) 「Cintiq Companion」は、小型かつ高性能な液晶ペンタブレット「Cintiq 13HD」のスペックはそのままにOSを搭載し、場所を選ばず創作活動に使用することができる新たな製品群。搭載OSはAndroid/Win
Here's what I'm using. The token doesn't necessarily have to be heard to guess, it's more like a short url identifier than anything else, and I want to keep it short. I've followed some examples I've found online and in the event of a collision, I think the code below will recreate the token, but I'm not real sure. I'm curious to see better suggestions, though, as this feels a little rough around
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
$ iops /dev/sda /dev/sda, 3.00 T, sectorsize=512B, #threads=32, pattern=random: 512 B blocks: 79.6 IO/s, 40.8 kB/s (326.2 kbit/s) 1 kB blocks: 62.3 IO/s, 63.8 kB/s (510.1 kbit/s) 2 kB blocks: 58.6 IO/s, 120.0 kB/s (959.8 kbit/s) 4 kB blocks: 49.0 IO/s, 200.6 kB/s ( 1.6 Mbit/s) 8 kB blocks: 55.5 IO/s, 454.3 kB/s ( 3.6 Mbit/s) 16 kB blocks: 59.9 IO/s, 981.3 kB/s ( 7.9 Mbit/s) 32 kB blocks: 60.7 IO/s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く