タグ

ブックマーク / ruby-rails.hatenadiary.com (8)

  • Railsの権限管理Punditのソースコードリーディング - Rails Webook

    Railsの権限管理のPunditのソースコードを読んでみてまとめました。 体のコード量的には300行程度なので比較的簡単に読めるかと思います。 1. 目的 2. 基情報 対象バージョン コード量 ディレクトリ構成 クラス図 ドキュメント 3. Punditの権限管理の実装する方法 4. 権限管理機能をRailsと統合する方法 5. RailsのGeneratorの作り方 5.1. pundit:install 5.2. pundit:policy [model] まとめ 1. 目的 下記のようなこと中心にソースコードを見ていきたいと思います。 権限管理の実装方法 権限管理の仕組みをRailsに組み込む方法 RailsのGeneratorの作り方 2. 基情報 対象バージョン 2018/7/22に作られたv2.0.0で確認します。 Pundit v2.0.0 コード量 全体のruby

    Railsの権限管理Punditのソースコードリーディング - Rails Webook
    h5y1m141
    h5y1m141 2018/09/23
    この程度なら一度読んでおいて損は無さそう
  • RailsのRSpecテストを速くする方法まとめ - Rails Webook

    Photo by Flickr: chief_huddleston's Photostream Railsの規模が大きくなると自動テストの実行時間もだんだんと長くなっていきます。素早く開発していくにはテストの実行時間を短くすることが大切です。 RSpecのテストを速くする方法をまとめましたので参考にしてください。 動作確認 Rails 4.1 rspec-rails 3.1.0 test-queue 0.2.9 目次 1. RSpecのパフォーマンス測定 2. test-queueで並列でテストを実行する 3. rspec-guardを使って更新したファイルを自動的にテストする 4. Springを使ってテストのロード時間を短くする 5. ログレベルを変える 6. GCを実行を抑える 7. RSpecファイルのリファクタリングをする 7.1. itを少なくする 7.2. createよりも

    RailsのRSpecテストを速くする方法まとめ - Rails Webook
    h5y1m141
    h5y1m141 2017/10/24
    チガウ記事見てたらはてなのオススメで古いけど今お手伝いしてる所で凄く役立ちそうなのを見つけたら。明日以降試してみたい
  • Rails4でポリモフィックのリレーションを実装する - Rails Webook

    Railsでは、ActiveRecordのhas_manyのasオプションとbelogns_toのpolymorphicオプションを使うことで、DBのポリモフィックのリレーションを簡単に実装することができます。 動作確認 Rails 4.1 ActiveRecord 4.1 目次 ポリモフィックリレーションとは ポリモフィックなテーブルの作成 モデルにhas_manyとbelongs_toを追加する 使えるようになるメソッド ポリモフィックの画面を作成 1. ポリモフィックリレーションとは説明のために次のER図を実装してみます。 記事(Article)とイベント(Event)にそれぞれコメント(Comment)を複数つけることができます。 記事用のコメントテーブル、イベント用のコメントテーブルとそれぞれ作ると、それぞれ同じような処理を記述しなければいけないため、コメントテーブルは参照先とな

    Rails4でポリモフィックのリレーションを実装する - Rails Webook
    h5y1m141
    h5y1m141 2016/03/14
    polymorphic associationsを改めて調べていて、これ使うことで、動的にモデルの情報を読み込む処理がすっきりするから、状況によって上手に使っていこう
  • RailsでCSSスタイリングをコントローラー単位で分けるTips - Rails Webook

    Railsでは複数のSCSSファイルをCSSにコンパイルし、1つのファイルにまとめる機能があります。こうすることでサーバーとブラウザの通信回数が減るため速度はあがるのですが、CSSスタイリングのCSSの名前空間が衝突して、意図しないCSSの動作となってしまうことがあります。 そのため、ハック的ですがCSSの名前空間の衝突を防止するために、RailsCSSスタイリングをコントローラー単位で分けるTipsを説明します。 動作確認 Rails 4.1 1. bodyタグのclass属性にコントローラ名をつける 次のようにして、レイアウトファイルのbodyタグのclass属性にコントローラ名を設定するようにします。 # app/views/layouts/application.html.erb <body class='<%= "#{controller.controller_name}" %

    RailsでCSSスタイリングをコントローラー単位で分けるTips - Rails Webook
    h5y1m141
    h5y1m141 2015/06/12
  • RailsでPaperTrailを使って取り消し機能を作成する - Rails Webook

    Photo by Flickr: Scott Smith (SRisonS)'s Photostream PaperTrailとは、モデルの変更(作成/更新/削除)をトラックするgemです。 モデルが変更されたら逐一データを保存するので「監査やバージョン管理」に役立ちます。 今回は、次のように、モデルの作成/更新/削除の取り消しをできるようにします。 動作確認 Rails 4.2.0 Ruby 2.2.1 paper_trail 4.0.0.beta2 目次 PaperTrailのインストール PaperTrailの基的な使い方 PapterTrailで取消機能を実装する PaperTrailの使用時の注意点 1. PaperTrailaのインストールGemfileにpaper_trailを追加します。 # Gemfile gem 'paper_trail', '~> 4.0.0.bat

    RailsでPaperTrailを使って取り消し機能を作成する - Rails Webook
    h5y1m141
    h5y1m141 2015/02/15
    社内向けのシステムで使えそうな所ありそうでメモっておこう
  • Rails4で1対多のリレーションをモデルに実装する - Rails Webook

    Railsでは、ActiveRecordのhas_manyとbelogns_toを使うことで、DBの「1対多」のテーブル間のリレーションをモデルに簡単に実装することができます。 動作確認 Rails 4.1 ActiveRecord 4.1 目次 1対多関連とは 参照先の外部キーを追加する モデルにhas_manyとbelongs_toを追加する 使えるようになるメソッド 1. 1対多関連とは説明のために次のER図を実装してみます。 顧客1人が複数回注文をするので、「顧客」から見ると「注文」は"多"です。 また、1注文は必ず一人の顧客から注文されないので、「注文」から見ると「顧客」は"1"です。 このような関係を「1対多関係」といいます。 2. 参照先の外部キーを追加するまず、多側のテーブル(今回はordersテーブル)にxxx_idという名で外部キーを追加します。 xxxの箇所は参照先の

    Rails4で1対多のリレーションをモデルに実装する - Rails Webook
    h5y1m141
    h5y1m141 2015/02/13
  • Railsのmigrationの基本とレシピ集 - Rails Webook

    RailsのMigrationの基的なことから、カラム追加/削除、インデックス追加、NULL制約、カラム名変更などのレシピ集をまとめました。 動作確認 Rails 4.1 目次 1. Migrationの基礎 1.1. migrationファイルの作成 1.2. マイグレートの実施 rake db:migrateコマンド 1.3. マイグレートの適用状況確認 rake db:migrate:statusコマンド 1.4. データの投入 rake db:seedコマンド 1.5. マイグレーションで使えるデータ型一覧 2. Migrationのレシピ集 2.1. カラムの追加(add_column) 2.2. カラムの削除(remove_column) 2.3. データ型の変更(change_column) 2.4. インデックスやユニーク制約の追加/削除(add_index/remove

    Railsのmigrationの基本とレシピ集 - Rails Webook
    h5y1m141
    h5y1m141 2014/12/10
    MigrationでAddXXXToXXXみたくキャメルケースでしか書けないのかと思ったけど、パーフェクトRuby on Railsやこのエントリのようにカラムの追加をadd_xxx_to_xxx という感じでスネークケースで書くこと出来るのか
  • Railsを始めたばかりの人向け!Railsの仕組みを一から理解しながらブログを作成する - Rails Webook

    Rails初心者がRailsの一通りの仕組みを理解できることをために、Railsの仕組みを一つ一つ理解しながらブログを作成していきます。 Railsでのルーティング、コントローラー、モデル、ビューの規約や使い方、ScssでのスタイリングやCoffeeScriptでのJavascriptの記述なども説明します。 Rails Guide - Getting Started with Railsをベースにしました。 まずは、完成させるブログアプリケーションの画面です。 動作確認 Ruby 2.0 Rails 4.1 Mac OS X 10.9 前提条件 Ruby がインストール済み Rails 4 がインストール済み SQLite3データベースがインストール済み ※もしインストールされていない場合は、「Rails4 インストール」などでGoogle検索してインストールしてください 目次 Rail

    Railsを始めたばかりの人向け!Railsの仕組みを一から理解しながらブログを作成する - Rails Webook
    h5y1m141
    h5y1m141 2014/12/08
    ”DELETEメソッドもサーバーに送信されないため” jQuery使わない形でアプリ作っていてルーティングは合ってるのにレコード削除でDELETE呼ばれずハマったけど jquery_ujsがActionとHTTP Verbの対応いい感じにやってくれていたのか。
  • 1