2014年3月19日のブックマーク (20件)

  • 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 と判定するの知って

  • Rubyでenumを使いたい時 - Qiita

    C系言語でお馴染みのenumですが、Rubyにはenumがないので、moduleを使ってやっています。 enum定数の定義 基的には定数を複数持ったモジュールを定義するだけです。

    Rubyでenumを使いたい時 - Qiita
  • pgnote.net

    Buy this domain. pgnote.net 2020 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy

  • モデル(model) | Railsドキュメント

    モデルについて 説明 モデルとはアプリケーションが扱うデータや処理を表現する仕組みのこと モデル名とテーブル名の規約 英大文字から始まる 英数字のみ 単語の区切りでは、先頭文字を大文字 単数形の名詞 Entry UserComment ファイルはapp/modelsディレクトリに格納 ファイル名は、モデル名の単語区切りを「_」にし、すべて小文字にしたもの app/models/entry.rb app/models/user_comment.rb 命名規則 種類 説明 例

    モデル(model) | Railsドキュメント
  • mergeメソッド使ってます? - Qiita

    Help us understand the problem. What is going on with this article?

    mergeメソッド使ってます? - Qiita
    fushiroyama
    fushiroyama 2014/03/19
    fucking cool
  • 澳门六合官网-澳门六合官方官网

    澳门六合官网【官方直营-信誉品牌】澳门六合官网实力打造全网顶级信誉、高赔率、最稳定的娱乐服务平台,24小时客服在线,首充就送,提现秒到账,澳门六合官网欢迎您的加入...

  • Ruby の関数オブジェクト - Proc とブロックの使い方

    1. 関数オブジェクトとは これまで、Ruby のイテレータから、「ブロック付きメソッド」について見てきた。 Ruby のブロック付きメソッドとイテレータ - yield の様々な使い方 Ruby のイテレータ (2) – Enumerable と Comparable モジュール 今回は、他の言語で「関数オブジェクト」と呼ばれるものを生成するための、Proc クラスについて調べる。 Proc - Rubyリファレンスマニュアル によると、 Proc はブロックをコンテキスト(ローカル変数のスコープやスタックフレーム)とともにオブジェクト化した手続きオブジェクトです。 Ruby の解説を初めて読んだとき、Proc クラスは分かりにくかった。同時に、以下の項目も理解しずらかった。 イテレータ ブロック付きメソッド Proc オブジェクト proc lambda{} &変数 今思えば、これらを

    Ruby の関数オブジェクト - Proc とブロックの使い方
  • 「ActiveRecord」の基本とデータの参照

    それでは、マイグレーションファイルの内容を見ていきましょう。 先ほどのUserクラスの例では、rails gコマンドで次のようなマイグレーションファイルが生成されます。このマイグレーションファイルは、「usersというテーブルを作成する」というスキーマ変更に対応するとともに、「20110403005910」というスキーマバージョンを表しています。なお、このバージョンの数字は、マイグレーションファイルをコマンドで生成する際に日時をもとに自動で付与されます。 class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.string :name t.string :email t.date :birthday t.integer :number t.timestamps end end

    「ActiveRecord」の基本とデータの参照
    fushiroyama
    fushiroyama 2014/03/19
    migrationのオプションをいつも忘れるので
  • validates_inclusion_of - リファレンス - - Railsドキュメント

  • ActiveRecord4でこんなSQLクエリどう書くの? Merge編 | Webシステム開発/教育ソリューションのタイムインターメディア

    ActiveRecord4でこんなSQLクエリどう書くの? Merge編 #activerecord#rails#ruby 2013年 10月 24日 nishio 「このデータ取得するのにSQLではこういう風に書けばいいんだけど、ActiveRecordでは一体どう書けばいいの?」 毎回この課題に悩まされています。 特に業務アプリの場合、とてつもなく複雑なSQLを投げる場合があります。 ものすごい数のテーブルをjoinして、existsで条件みて、union allして。。。 なんていう処理がでてくると、さすがにActiveRecordやDatamapperを使ってクエリを組み立てるのをあきらめて、直接SQLを書いてしまうことがあります。 でも、できればActiveRecordを使ってスマートにSQLを組み立てたいものです。 scopeで書いておけば、処理も使い回せますしね。 ということ

    ActiveRecord4でこんなSQLクエリどう書くの? Merge編 | Webシステム開発/教育ソリューションのタイムインターメディア
  • ActiveRecord4でこんなSQLクエリどう書くの? Arel編 | Webシステム開発/教育ソリューションのタイムインターメディア

    ActiveRecord4でこんなSQLクエリどう書くの? Merge編 では、関連先のscopeを使うことができるmergeを紹介しました。mergeを使う事で、変更に強いクエリを美しく組み立てることができました。 今回は、ActiveRecord4で書きにくいSQLクエリたちを紹介します。 書きにくいクエリとは、具体的には以下のものがあげられます。 比較演算ORlikeleft outer joinunionサブクエリexists ActiveRecordでこれらのクエリを組み立てる場合、どうしても美しくない(SQL文字列をべったり書いてしまうような)書き方となってしまいがちです。 この処理を美しく書くためには、ActiveRecordだけの機能では足りず、ActiveRecordが内部で使っているArelというライブラリを使う必要がでてきます。 今回は、Arelを使って華麗にSQL

    ActiveRecord4でこんなSQLクエリどう書くの? Arel編 | Webシステム開発/教育ソリューションのタイムインターメディア
  • 帰ってきたHAVING句

    はじめに SQLのクラスを教えるとき、最大の課題の一つが、生徒たちがそれまでに手続き型言語から身に付けたことを、一度「頭から追い出す(unlearn)」ことだ。私がそのとき採る一つの方法は、処理を「レコード単位」ではなく、集合という観点から考えるよう強調することである。 ――――J.セルコ SQLの考え方を習得するときに最大の障壁となるのが、私たちの多くが慣れ親しんだ手続き型言語の考え方(ソート、ループ、分岐、代入、等々)です。SQL質を理解するには、私たちの心に強固に貼り付いてしまった思考パターンを、一度ベリベリと引き剥がし、更地に戻してやる必要があります。それが、セルコが「unlearn」という言葉に込めたニュアンスです。セルコ自身、Fortranからプログラマとしてのキャリアを開始し、C、Algol、Pascalと手続き型言語を渡り歩いた後にSQLを身に付けた人物だけに、言葉に実

    帰ってきたHAVING句
  • MySQLでNOT INの代わりにNOT EXISTSを使うと速い

    ちょっとした情報を取り出す時のクエリが30秒ほどかかったので、何とか改善できないものかと試行錯誤してみました。 2つのテーブルがあって、仮に ■顧客情報 t_client_info ( client_id, name, address) ■顧客履歴 t_client_history (id, client_id, visit_date) とでもしましょう。 visit_dateはdate型ではなくてint型でYYYYMMDDの形式とします。 あとは見たまんまなのでテーブルの説明は省略ます。 2010年の元旦から1年以内に来店した顧客の住所と最終来店日を取得するというクエリです。 1年のうちに1回しか来なかった人は省くことにします。 SELECT i.client_id, name, address, MAX(visit_date) as vdate FROM t_client_info A

  • Arel でサブクエリ - Qiita

    Rails Advent Calendar 8日目です。 Arel でサブクエリを組んでみようと思って、どうやるのかググるとこのページがヒット。いろんな例があってわかりやすいです。 Arelで色んなSQLを組み立ててみる - ryopekoの日記 サブクエリや型変換を伴うようなSQLの組み上げについては調査中です。 えー。 ということで調べたメモ。 基 Arel::Table というクラスがあって、そこからメソッドをチェーンしていきます。 Arel::Table のオブジェクトは普通にnewして作ることができます。

    Arel でサブクエリ - Qiita
  • 第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp

    はじめに Ruby on Railsの2年半ぶりのメジャーバージョンアップである3.0の正式リリースがいよいよ間近に迫ってきました。 Rails 3は、アプリケーション・レベルではRails 2.3との互換性をなるべく保ちながらも、メジャーバージョンアップだけあってフレームワーク自体は隅々にまで徹底的なリファクタリングが施されて更なる洗練を遂げています。結果として、Rails 3では融通の効かないフルスタック構造を捨ててすっきりとしたモジュール独立性が実現されているのですが、この際に、Merbとの合併の影響もあってか、いくつかの新たな外部ライブラリに依存する形になっているのも興味深いところです。 そこで稿では、あえてRails 3そのものではなく、このRails 3の大改造の舞台裏を支える裏方さんにスポットライトを当ててみたいと思います。 Arelによってパラダイムが大きく変わったAct

    第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp
    fushiroyama
    fushiroyama 2014/03/19
    ActiveRecord(とarel)僕が思ってるより全然すごかった
  • 第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp

    はじめに Ruby on Railsの2年半ぶりのメジャーバージョンアップである3.0の正式リリースがいよいよ間近に迫ってきました。 Rails 3は、アプリケーション・レベルではRails 2.3との互換性をなるべく保ちながらも、メジャーバージョンアップだけあってフレームワーク自体は隅々にまで徹底的なリファクタリングが施されて更なる洗練を遂げています。結果として、Rails 3では融通の効かないフルスタック構造を捨ててすっきりとしたモジュール独立性が実現されているのですが、この際に、Merbとの合併の影響もあってか、いくつかの新たな外部ライブラリに依存する形になっているのも興味深いところです。 そこで稿では、あえてRails 3そのものではなく、このRails 3の大改造の舞台裏を支える裏方さんにスポットライトを当ててみたいと思います。 Arelによってパラダイムが大きく変わったAct

    第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp
    fushiroyama
    fushiroyama 2014/03/19
    RailsTutorialレベルからようやくActiveRecordの深い部分に足を踏み入れます(_ _)
  • Arelで色んなSQLを組み立ててみる - ryopeko の何か

    (この記事は Ruby Advent Calendar jp:2010の 15 日目です。前日は tomohiro68 さんでした。) Arelとは Arelの概要については@a_matsudaさんのgihyoの記事を参照してください。 http://gihyo.jp/dev/serial/01/ruby/0043 はじめに 扱うRDBSQlite3です。 例として以下のようなスキーマを持ったテーブルを取り扱い、進めていきます。 class CreateBooks < ActiveRecord::Migration def self.up create_table :books do |t| t.string :name t.string :category t.timestamps end end def self.down drop_table :books end end 基的な

    Arelで色んなSQLを組み立ててみる - ryopeko の何か
  • 既存のscopeからor条件のSQLを組み立てる - Qiita

    class User < ActiveRecord::Base scope :male, ->{ where(sex: :male) } # 男性 scope :female, ->{ where(sex: :female) } # 女性 scope :adult, ->{ where(arel_table[:age].gteq 20) } # 成人 scope :minor, ->{ where(arel_table[:age].lt 20) } # 未成年 scope :men, ->{ adult.male } # 成人,男性 scope :women, ->{ adult.female } # 成人,女性 scope :boys, ->{ minor.male } # 未成年,男性 scope :girls, ->{ minor.female } # 未成年,女性 end User

    既存のscopeからor条件のSQLを組み立てる - Qiita
  • Active Record Query Interface — Ruby on Rails Guides

    This guide covers different ways to retrieve data from the database using Active Record. After reading this guide, you will know: How to find records using a variety of methods and conditions. How to specify the order, retrieved attributes, grouping, and other properties of the found records. How to use eager loading to reduce the number of database queries needed for data retrieval. How to use dy

    Active Record Query Interface — Ruby on Rails Guides
  • i18nについて | 酒と涙とRubyとRailsと

    RailsのWebアプリケーションを英語化(多言語化)をサポートしてくれるGem「i18n」の紹介です。 🎂 i18nのベーシックな使い方デフォルトの言語を日語にするには、config/application.rbの次のように指定します。

    i18nについて | 酒と涙とRubyとRailsと