タグ

ActiveRecordに関するd4-1977のブックマーク (23)

  • Blitz.jsをRuby on Railsエンジニアが触ってみた感想

    感想です。 何をしたか 現状でBlitz.jsで番サービスを運用できるかの調査。 Railsで運用している番サービスの一部機能を、3日間ほどかけて移行を試してみた。 結論 (Railsの主戦場でもある)新規事業開発の文脈でのクイックな立ち上げを想定するなら、番運用するにはまだ厳しい。 特に、RailsユーザーとしてはActiveRecordがないのが厳しい。 開発効率そのものはRailsと比べて多少落としても、Railsよりもスケーラブルで型安全に開発したいなら、割と良い選択肢に思う。 もろもろ可能性は感じるので、引き続き応援していきたい。 良かった点(=Blitz.jsに興味を持っている理由) 型安全な開発 サーバーもフロントも全てが型に守られた開発、そしてIDEの恩恵を受けられるのは、いうまでもなく心地がいい。 型は補助輪のようなものなので、ユーザースキルが高ければ必須ではないく

    Blitz.jsをRuby on Railsエンジニアが触ってみた感想
    d4-1977
    d4-1977 2021/04/25
    そうなんですよね「RailsユーザーがRails以外を触ると、ActiveRecordがないことに絶望する」
  • Rails Active Record における rewhere の使い所 - ボクココ

    ども、@kimihom です。 今回は ActiveRecord でもおそらくマイナーなメソッドであろう rewhere を使う機会があったのでメモとして残しておく。 今回の利用ケース とあるデータの取得条件でフィルタリングをして統計として表示するページを想像してみて欲しい。そこではあらゆる where 条件で絞り込みを指定している。そしてもちろん取得する件数や並びの順番なども指定している。 # 今日更新された特定の会社に所属するコンタクトを作成日時の新しい順で30件 @records = Contact.where( "updated_at between ? and ?", DateTime.now.beginning_of_day, DateTime.now.end_of_day ) @records = @records.where(company_id: company.id)

    Rails Active Record における rewhere の使い所 - ボクココ
    d4-1977
    d4-1977 2019/12/02
    そんなのあったんだ!
  • Railsのポリモーフィック関連とはなんなのか - Qiita

    はじめに Railsのポリモーフィック(polymorphic、多態性)関連について、実装方法を説明している記事は見かけるのですが、実際これがどんなものでどんな時に便利なのかを説明している記事があまりなく、よくわからないで使っている人もいるようなので記事を書きました。 実装方法そのものについては詳細には説明しませんので、Railsのポリモーフィック関連をどう書くのかを知らない方はまずは公式ドキュメントを読んでいただけると理解が早いかと思います。 ボリュームは少ないので、2分もかからないかと思います。 Rails Guides: 2.9 ポリモーフィック関連付け "どんなものか"について、先に結論 ポリモーフィックとはダックタイピングの一種であり、 別の言い方をするとGoFのデザインパターンで言うところの「プログラムは実装に対してではなく、インターフェースに対して行う(Program to

    Railsのポリモーフィック関連とはなんなのか - Qiita
  • ActiveRecordのモデルが1つだとつらい - Qiita

    Railsあるある 何気ないモデルの変更がアプリケーション全体を傷つけた TL;DR 最近の趣味アプリではコントローラーごとにモデル生やしてトップレベルのモデル使わない設計で書いていて、コールバックやデフォルトスコープ書き散らかしても影響範囲がコントローラー内だけで済むので便利だしFormオブジェクト書いてグルーしまくる必要もなく快適 — Miyagi (@hanachin_) 2018年1月30日 アプリ全体で1モデルだとグローバル変数と一緒、モデル全体に影響でる機能がアプリ全体に影響でてつらい。機能ごとにスキップしたり使い分けはできるけどモデルごと全部分けたほうが楽、コントローラーごとに分けると責務が明確になりやすい。みたいな感じです! 詳しい記事はやる気でたら書く... — Miyagi (@hanachin_) 2018年2月9日 自分自身ネームスペースどう切るかとかは興味なくてd

    ActiveRecordのモデルが1つだとつらい - Qiita
    d4-1977
    d4-1977 2018/02/12
    わかるが、沢山モデルが作られて、しまうのも…という。モジュール使えばいいのかな。テスト書きにくそうだけれど
  • ActiveModel::Attributes が最高すぎるんだよな。 - Qiita

    Ruby on Rails 5.2.0.beta2が出て久しい。 僕はRails大好きっ子なので 社内の新規事業や、社外のお手伝いしているベンチャー企業では もちろん、Rails5.2を使って開発をしている。 すでに、新しいRailsに関する記事はいくつか挙がっているが 個人的に、一番インパクトが大きかったのはActiveModel::Attributesが導入されたことである。 待望のActiveModel::Attributes ActiveModel::Attributesでなにが変わったの?というと、 いままでActiveRecordでしか使えなかった一部の機能が、ActiveModelでも使えるようになっただけである。 いや、しかし! 今までのActiveModelの最大の弱点は まさにこの ActiveModel::Attributes が無かったことだと思う。 それが、Rai

    ActiveModel::Attributes が最高すぎるんだよな。 - Qiita
  • Railsバリデーションまとめ - Qiita

    オブジェクトがDBに保存される前に、そのデータが正しいかどうかを検証する仕組みをバリデーションといいますが、 RailsでActiveRecordを使ってそれを実現するにあたってよく使いそうなのをまとめます。 以下のメソッドにおいてはバリデーションがトリガされます。 create create! save save! update update! 以下のメソッドにおいてはバリデーションはスキップされます。 decrement! decrement_counter increment! increment_counter toggle! touch update_all update_attribute update_column update_columns update_counters Railsでのバリデーショントリガ Railsではvalid?メソッドを実行するとバリデーションが実

    Railsバリデーションまとめ - Qiita
  • ActiveRecordのSQLインジェクションパターン

    (Last Updated On: 2018年10月7日)Railsで多用されているActiveRecordのインジェクションパターンを簡単に紹介します。出典はrails-sqli.orgなのでより詳しい解説はこちらで確認してください。特に気をつける必要があると思われる物のみをピックアップしました。 Exists?メソッド User.exists? params[:user] params[:user]などの使い方は危険です。RailsPHPなどと同様にuser[]というパラメーターで配列化します。 ?user[]=1 が入力の場合、 SELECT 1 AS one FROM "users" WHERE (1) LIMIT 1 となり不正なクエリが実行されます。 Calculateメソッド CalculateメソッドはSQLの集約関数を実行するメソッドです。average、calcula

    ActiveRecordのSQLインジェクションパターン
  • ActiveRecord の has_many関連、件数を調べるメソッドはどれを使えばいい? - Qiita

    ActiveRecord で、has_many で定義した関連があるとき、その関連の件数を取得するのには、count, size, length の3つのメソッドがあります。さらに、0件かどうかを調べるためには、empty? や exists? といった問い合わせメソッドもあります。 これらの使い分けについて、なるべく分かりやすくなるように解説してみたいと思います。 はじめに、has_many関連とは、次のようなコード例における、company.users のことを指します。 class Company < ActiveRecord::Base has_many :users end class CompanyUsersController < ApplictaionController def index company = Company.find(params[:company_id

    ActiveRecord の has_many関連、件数を調べるメソッドはどれを使えばいい? - Qiita
  • ユーザとユーザを多対多で関連付けるモデルを共通化する - Hidden in Plain Sight

    思いのほか前回のRailsプチ・デザインパターンの紹介に反応があったので、こういう小ネタも出していったほうがいいのかな、ということで第二弾。 ソーシャル系アプリだと、ユーザとユーザを関連付ける多対多のモデルがたくさんでてきます。たとえば、一般的なところではフォローとかブロックとか足あととか。さらにデーティングサイトになると、ウィンクだったり、Secret admirer(こっそりlikeするけど両思いだったらおめでとうって通知がくるってやつ)だったり、いろいろなモデルがこのパターンにあてはまります。 この場合、「AがBをフォローしている」「BがAをフォローしている」「AとBがお互いにフォローしている」という3つの状態があるわけですが、相互フォローの状態は「AがBをフォローし、かつBがAをフォローしている」と読み替えてSQLでも記述可能なので、以下ではシンプルに単方向のグラフで全てを扱うもの

    ユーザとユーザを多対多で関連付けるモデルを共通化する - Hidden in Plain Sight
  • coma-tech.com - このウェブサイトは販売用です! - coma tech リソースおよび情報

    This domain is expired. For renewal instructions please click here. 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.

    coma-tech.com - このウェブサイトは販売用です! - coma tech リソースおよび情報
  • ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita

    ActiveRecordでN+1クエリを潰すためにeager loadingを行う場合、preloadやincludesやeager_loadが役に立つ。 Preload, Eagerload, Includes and Joinsという記事にそれらの違いがよくまとめられているんだけど、includesが挙動を変える条件があまり正確に書かれていなくて自信が持てなかったし、そもそも記事が古いのでRails4.1.5のソースを読んで調べた。 せっかく調べたので、全体を通して日語でまとめてみようと思う。 User.joins(:posts).where(posts: { id: 1 }) # SELECT `users`.* FROM `users` INNER JOIN `posts` ON `posts`.`user_id` = `users`.`id` WHERE `posts`.`id

    ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita
  • Rails ポリモーフィック関連の関連名の命名 - 130単位

    Railsにポリモーフィック関連という機能があります。 Polymorphic Associations - Active Record Associations - Ruby on Rails Guides class Picture < ActiveRecord::Base belongs_to :imageable, polymorphic: true end class Employee < ActiveRecord::Base has_many :pictures, as: :imageable end class Product < ActiveRecord::Base has_many :pictures, as: :imageable end ざっくりいうと、複数の親Modelに属するような子Modelの関連を抽象化してまとめる機能です。詳しくはRails Guidesや以

    Rails ポリモーフィック関連の関連名の命名 - 130単位
  • Rails雑感 - 愛と勇気と缶ビール

    最近、いわゆるRailsの古めのバージョンで書かれたプチレガシーな感じのアプリケーションを触っていて思ったこと。 ちなみに、この話題は多くの人にとって大分今更感のある内容なので、逆にこれを読んで「今更だなぁ、そんなのとっくに結論出てるでしょ」と思わない人はヤバい。 めんどくさいのでデータ永続化を行うためのミドルウェアはMySQLという前提で書く。 単純に言うと、いわゆるRailsアプリのMVCではMがActiveRecordかなんかを継承していて、そのまま作るとModelとtableが一対一対応になってしまう これだと、どのModelにも属さないようなビジネスロジックを置くべき場所がどこなのかよくわからない 「どのModelにも属さないようなビジネスロジックなんてないでしょ!」「どのModelにも属さないビジネスロジックがある時点で設計おかしいでしょ!」と思った人は幸福である。頭が。 ちな

    d4-1977
    d4-1977 2013/06/01
    symfonyあたりは、上手くかわしている気がする
  • Ruby on Railsの「えせMVC」の弊害

    先日のエントリーでも少し触れたが、Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある。MVC(Model View Controller)がなぜ必要かを根底の部分でちゃんとと意識せずにRailsアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「RailsでMVCを学ぶ」などもっての他だし、「JavaにもRailsと同じようなフレームワークを作って業務用アプリの開発を効率化しよう」などという発想もとても危険である。 ということで、今日はまずはMVCの解説から。 MVCの発想の根底には、「モジュール化と情報の隠蔽により、プログラムがスパゲッティ化するの(コード間の相互依存関係が複雑に入り込んでしまってにっちもさっちも行かない状態になること)を避

  • はてなブログ | 無料ブログを作成しよう

    週報 2024/04/28 川はただ流れている 4/20(土) 初期値依存性 さいきん土曜日は寝てばかり。平日で何か消耗しているらしい。やったことと言えば庭いじりと読書くらい。 ベランダの大改造をした。 サンドイッチ 一年前に引っ越してからこんな配置だったのだけど、さいきん鉢を増やしたら洗濯担当大臣の氏…

    はてなブログ | 無料ブログを作成しよう
  • s.h.log: RailsなしでActiveRecordだけ使って、SQLiteを読み書きする

    « PSoC - CY8C29466でUART受信割り込み | メイン | C#3.0 - 任意のウィンドウをアクティブにしてキーコードを送る » 2008年03月15日 ■ RailsなしでActiveRecordだけ使って、SQLiteを読み書きする [Programming&Electronics][Technology] Ruby on Railsが巨大すぎてよくわからないので、とりあえずRailsの中で使われているO/RマッパであるActiveRecordだけ使ってみた。 SQLを使ってオブジェクト指向で書くとき、SQL文を発行して受け取った返り値の配列をオブジェクトに突っ込み直してやらなければならないんだけど、O/R mappingを使うとSQLのデータベースとそこに接続しているプログラム上のオブジェクトが同期できる。 もちろん、プログラム側のオブジェクトで save()など

  • ActiveRecord のお勉強 - elm200 の日記(旧はてなダイアリー)

    Rails を勉強する!とこのブログを立ち上げて以来、残念ながら Rails の勉強はあまり進んでいない。その大きな理由は、Rails はかなり大きいフレームワークだからではないか。Javaで言ったら Struts + Hybernate + JUnit といった感じで、フレームワーク数個分に相当するのだ。 個人的な感想としては、中でも Model 部分に相当する O/R マッパーの ActiveRecord がよくできていると感じた。そこで、るびまの記事などを参考に ActiveRecord の学習に挑戦。 ActiveRecord::Base の rdoc が非常にわかりやすい。これは、(Ruby のルートディレクトリ)/lib/ruby/gems/1.8/doc/activerecord(バージョン)/rdoc/index.htmlから探しだせる。 ActiveRecord::Bas

    ActiveRecord のお勉強 - elm200 の日記(旧はてなダイアリー)
  • ActiveRecord の歩き方 - Association 編(1) - elm200 の日記(旧はてなダイアリー)

    まえがき Rails に出会ってからというもの、私は ActiveRecord の洗練されたインターフェイスに惹かれてきた。特にアソシエーションがどういう風に実装されているのか自分で確かめてみたかった。以下のコード例を見てほしい。 class Entry < ActiveRecord::Base has_many :comments end class Comment < ActiveRecord::Base end これはあるブログシステムのモデルである。このコードではエントリ(Entry)とコメント(Comment)という2つのモデルがあり、Entry モデルの has_many :comments というメソッド呼び出しによって、コメントがエントリに関連付けられている。これがアソシエーションである。(エントリは、コメントを複数持つ。だから has_many アソシエーションが使われて

    ActiveRecord の歩き方 - Association 編(1) - elm200 の日記(旧はてなダイアリー)
  • 読書メモ+tips+日記:[Ruby] ActiveRecord を単体で(Railsアプリの外で)使う - livedoor Blog(ブログ)

    読書メモ: 基的に読み終わったもののみ載せる (読みかけとか途中で飽きたものを含めるとキリがないから) ・ Tips  : 作ったスクリプトとかTips (WSH, JScript, Perl, Ruby, Rails, UNIXコマンド他) ・ 日記  : 自分が思ったことの覚え書き的に Railsで使われている O/Rマッピングのライブラリ「ActiveRecord」は、単体でも(Railsアプリの中じゃなくてもという意味)使えます。 DBの参照/更新をするためのコードが とても短く簡単に書けるので、テストデータ投入とかバッチ処理を作るのに気軽に作れて良いかもしれません。 Railsでテストデータを入力/編集するための画面を作ったり(、うっかり凝ったものにして無駄に時間がかかったりしたり)、ActiveRecordでバッチ的な役割のプログラムを書いたりすることで、

  • Not Found

    See related links to what you are looking for.