タグ

activerecordに関するtobibako45のブックマーク (10)

  • php-activerecordのすすめ | blog @kimromi

    GMOペパボ Advent Calendar 2017の初日のエントリーです! 私が所属しているムームードメインではPHP環境とRuby on Railsが並行で運用されています。その中でPHP環境はが統一されたWebフレームワークを使用しておらず、データベース接続のクエリビルダーも自作されていて、書き方が冗長だったり、気をつけないとSQLインジェクションの危険がでるようなものであったので、何かいいクエリビルダーはないかと探していました。他のチームではpixieを導入していたりしていましたが、なにかもっと書いてて楽しくなるようなものはないか、RailsもやっているしActiveRecordライクに書けるものがないか探りました。 そこで見つけたのがphp-activerecordです。使っていてよくできてるなと感じましたので今回は使い方を紹介しようと思います。 インストール <?php Ac

  • ActiveRecordにおけるdestroyとdestroy!の違い - Qiita

    TL;DR(最初にざっくり結論) destroy : 削除できたら真の値(削除したインスタンス自身)、できなかったら偽の値(false)を返す。 destroy! : 削除できたら真の値(削除したインスタンス自身)、できなかったらActiveRecord::RecordNotDestroyed例外を発生させる。 削除に失敗する例 before_destroyコールバックでthrow :abortされた場合 dependent: :restrict_with_errorが設定され、なおかつ関連する子レコードを持つ親レコードを削除しようとした場合 はじめに ActiveRecordにはデータを削除するメソッドとして、destroyとdestroy!があります。 これはsaveとsave!の関係によく似ています(saveは検証エラーが発生したときにfalseを返し、save!は例外を発生させる)

    ActiveRecordにおけるdestroyとdestroy!の違い - Qiita
  • [Rails 5] モデルの継承元がActiveRecord::BaseからApplicationRecordに変更された|TechRacho by BPS株式会社

    2017.04.27 [Rails 5] モデルの継承元がActiveRecord::BaseからApplicationRecordに変更された こんにちは、hachi8833です。BigBinaryシリーズのRails 5翻訳記事をお送りいたします。 元記事 ApplicationRecord in Rails 5(米国BigBinary社のブログより) 著者: Prathamesh Sonpatki 訳文ではバージョンやリンクなどを現時点の内容に更新しています。 確認に使った環境 Rails 5.0.1(5-0-stable) + Ruby 2.4.1 Rails 4.2.7(4-2-stable) + Ruby 2.3.3 モデルの継承元がActiveRecord::BaseからApplicationRecordに変更された(翻訳) 2016年6月にRails 5.0.0がリリースさ

    [Rails 5] モデルの継承元がActiveRecord::BaseからApplicationRecordに変更された|TechRacho by BPS株式会社
  • Rails初心者から中級者になったと感じたきっかけ - nigoblog

    エンジニア(プログラマー)をやっていると基的には徐々にレベルアップしていきます。 しかしある点で閾値を越えて、レベルが一気に上がると感じる瞬間があります。 皆さんどうでしょうか? 自分の場合は クラスメソッドとインスタンスメソッドの違いをはっきり理解したことがそのきっかけでした。 これまでぼんやりとモデルにメソッドを追加していたものがかなり自信を持ってメソッドを追加出来るようになりました。 今回はクラスメソッドとインスタンスメソッドの違いを簡単に紹介して、他にも初級者から中級者に上がるようなパターンを考えてみたいと思います。 クラスメソッドとインスタンスメソッドの違い 当にその名の通りなんですが、 クラス全体で使えるのがクラスメソッド あるクラスのインスタンスで使えるのがインスタンスメソッド 具体例を書くと、rubyでは class Dog #クラスメソッド def self.chog

    Rails初心者から中級者になったと感じたきっかけ - nigoblog
  • Railsのmodelクラスのselfが曖昧だったので - Qiita

    class Article < ActiveRecord::Base def hoge #インスタンスメソッド end def self.hoge #クラスメソッド end end 上のはself.hogeはdef Article.hogeと同じ意味ですね! 2.使い分けについて インスタンスメソッドはそれぞれのインスタンスに対して参照などをするメソッドとして使います! クラスメソッドはmodelクラスのレコードを検索するなどの用途や作成されたインスタンスの数を数えるなど、個々のインスタンスには紐付けずクラスに対して働きかけるメソッドです! 3.メソッド内でselfを使用する場合 クラスメソッド内でselfを使うとクラスを指し、インスタンスメソッド内でselfはそのインスタンスになります! class Article < ActiveRecord::Base def hoge #インスタン

    Railsのmodelクラスのselfが曖昧だったので - Qiita
  • Rails における値オブジェクトと ActiveRecord の composed_of - Qiita

    Rails の ActiveRecord には値オブジェクト (Value Object) を便利に使うための composed_of というものがあるらしいのでメモっとく。 エンティティ (Entity) と値オブジェクト エンティティと値オブジェクトはドメイン駆動設計におけるモデルを表現する3パターンの要素のうちの2つだ。 エンティティ からエンティティの説明を引用しておこう。 多くのオブジェクトは、質的に、その属性によってではなく、連続性と同一性 (identity) によって定義される。 例えば Person クラスがあり、その属性は firstname・lastname・age だとしよう。Person クラスの2つのインスタンスがあり、それらが同姓同名同年齢だったとしても、その属性が一致しているからといって同一の人であるとは言えない。なので Person クラスのインスタン

    Rails における値オブジェクトと ActiveRecord の composed_of - Qiita
  • Active Record の基礎 - Railsガイド

    このガイドではActive Recordの基礎について説明します。 このガイドの内容: ORM (オブジェクト/リレーショナルマッピング) とActive Recordについて、およびRailsでの利用方法 Active RecordとMVC (Model-View-Controller)パラダイムの親和性 Active Recordモデルを使用してリレーショナルデータベースに保存されたデータを操作する Active Recordスキーマにおける名前付けルール データベースのマイグレーション、バリデーション(検証)、コールバック 1 Active Recordについて Active Recordとは、MVCで言うところのM、つまりモデルに相当するものであり、ビジネスデータとビジネスロジックを表すシステムの階層です。Active Recordは、データベースに恒久的に保存される必要のあるビジ

    Active Record の基礎 - Railsガイド
  • データベースにindexを張る方法 - Qiita

    データの読み込み速度を改善する上で、indexを張ることは非常に大切です。 ただし、張り方や張る箇所によっては、目に見えた改善が見られなかったり、むしろ速度が遅くなってしまうケースもあります。 そこで、indexへの理解を深めるべくindexの基礎的な内容を記します。 1.indexってなんぞや 特定のカラムからデータを取得する際に、テーブルの中の特定のカラムのデータを複製し検索が行いやすいようにしたものです。 例えば、あるユーザーをバイネームで検索したい!となった際に、Usersテーブルのnameカラムにインデックスを張ってないと、プログラムは、Userテーブルのnameカラムを上から順にみて、そのユーザーのデータを取得します。もし、これが1万人もしくはそれ以上の大量のデータを含むカラムだったらどうでしょう。すごく時間がかかりますね。 Usersテーブルのnameカラムにindexを張る

    データベースにindexを張る方法 - Qiita
  • ActiveRecordのコールバック早見表 | Rails

    Ruby on RailsのModel(Active Record)のコールバックを整理してみました。 コールバック名 説明

    ActiveRecordのコールバック早見表 | Rails
  • has_secure_passwordでauthenticateメソッドが追加される仕組み - Qiita

    Railsでおなじみのhas_secure_passwordですが、どんな仕組みでできているのでしょうか。 class User < ActiveRecord::Base has_secure_password end user = User.new user.authenticate('password') 動的にメソッドが追加される仕組みにより、これ以上無いくらいすっきりモデルの定義が書けますよね。 自作のGemなどでこんなAPIを作りたいと思ったので、調べました。 読んだソースコードはこれです。 結論 見かけ上は、下記のコードで同等の振る舞いを持たせることが可能です。

    has_secure_passwordでauthenticateメソッドが追加される仕組み - Qiita
  • 1