You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Punditについて、なるべくやさしく解説します。 ドキュメントを翻訳したものに近い内容となっております。 ドキュメントを読めるほど実力に自身がない人 ライブラリを調べる際にいろんな記事を見て時間を消耗する人 上記の方々の助けとなれば幸いです。 ※Railsで利用することを前提に話します。 Punditとは Rubyのgem(ライブラリ) 認可の仕組みを提供してくれる 「認可(Authorization)」と「認証(Authentication)」は意味が異なります。 詳しくは「よくわかる認証と認可」をご参照ください。 簡単に言うと「ユーザーによってページ表示の許可・拒否をしたり、表示情報の範囲を変えたりすることができるgem」です。 似たようなgemとしてcancancanがよく比較されますが、その違いはこちらの記事から引用させていただきます。 cancancanはユーザに対して、どんな
100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順 マイクロサービスの導入事例を、中の人が徹底的に語ります。クックパッドでは、100万行オーバーの超巨大なRuby on Railsアプリのマイクロサービス化に挑みました。アプリをいかに分離し、連携できるようにするか、など、同社が採ったマイクロサービス化の戦略を聞きました。 Ruby on Railsのバージョンアップに1年かかっていた 【マイクロサービス化戦略】まずはコードを減らすことから 【マイクロサービス化戦略】アプリ固有のバッドノウハウを減らす 【マイクロサービス化戦略】まずは分離しやすい部分からお試しで 【マイクロサービス化戦略】データベースが切れていればサービスも切りやすい 【マイクロサービス化戦略】インフラ構成を標準化する 【マイクロサービス化戦略】サービスメッシュを入れて通信の課題をクリ
Railsのリファクタリングの際に、クラスを細かく分ける手段として、Railsのdelegateを使ってみました。 直しづらい、クラスの長さ プロジェクトにRubocopを入れて、ヤバそうなコードをチェックしているのですが、書式の問題はものによっては自動解決も可能ですし、長すぎるメソッドも、どうにか分けられるものです。 一方で、「長すぎるクラス」というのは、そう簡単に分割できるものではありません。クラスは最終的に1つものとして動作させることになるので、メソッドみたいに「一部切り出す」というのが、あまりスッキリしません。 Moduleは使える、けど もちろん、一部を別なモジュールに分けてincludeする、という手段はあります。 Railsのモデルではhas_manyとかvalidatesとか、DSL的なメソッドを多用しますが、これに関しては「クラスに直接書く」あるいは「Concernのin
はじめに Rails 5.0.0.beta1が2015年12月18日にリリースされました。 また、それにあわせてRuby on Railsの公式ブログに主な変更点がまとめられています。(投稿者はあのDHH氏のようです) Rails 5.0.0.beta1: Action Cable, API mode, Rails command beta1がリリースされたということは、Rails 5.0の正式リリースもそろそろ近いということです。 (ちなみにRails 4.0ではbeta1の4ヶ月後に正式版がリリースされました。) Railsユーザーであれば、みなさん早かれ遅かれRails 5.0を使うことになると思うので、事前に予習しておきましょう! というわけで、上記の公式ブログの内容を翻訳してみました。 これを読めばRails 5.0でどういう変化が起きるのか、だいたい理解できるはずです! 翻訳の
RailsのAsset PipelineとPrecompileをNode.jsのみで処理できるgulp-sprocketsを作った 仕事ではRailsアプリを書いていて、JSやCSSなどのフロントエンドはRailsのAsset Pipelineの仕組みに則ってビルドしてる。 普通にRailsアプリ作ってると普段Sprocketsについて特に意識しないと思う。 Sprocketsはそこが凄くて、あまり考えなくてもドキュメント通りにやってれば、必要なAssetを結合できて、リリース時は変更がなければブラウザキャッシュから、変更があれば 新しく読み込まれるみたいなことをやってくれる。 なんだけど、もうそろそろ新しい機能はES2015で書きたいよねという人が増えてきた。 とはいえSprocketsは独自のディレクティブ以外は使えなくて、SprocketsWayから外れると途端に脆い。 ES2015
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist
Help us understand the problem. What is going on with this article? Rails3.2からRails4.2に上げたらActiveRecordが遅くなったので、どうやって調査して、どのように対処したかを語ってみたい。 とても長いので、ダルい人は最初と最後だけ読めばよいです。 TL;DR 環境: Ruby 2.1.5 ARオブジェクトを大量に(ざっくり750kくらい)loadするバッチ処理 3.2系での実行時間は約480sec、 4.2系では約2900sec 約6倍の性能劣化 原因: preloadで性能劣化してた CollectionProxyの生成周りで遅くなってた Rails4からARオブジェクトの1attribute毎にObject生成するので遅い GCの時間も増えた 調査方法: Githubのcommit、Issueを
Rubyを勉強する上で役立つ情報源をまとめてみました。まだ仕入れていない情報源があれば価値がある記事なんじゃないかと思います。 書籍 Everyday Rails - RSpecによるRailsテスト入門 Rubyでテストコードを書くときは多くの人がRspecを使っていると思いますが、そのRSpecを学ぶ上で実用的な書き方が学べます。実践で頑強なプログラミングを書けるようになり、チームの人たちも安心して仕事を任せてもらえます。 メタプログラミングRuby Ruby力を高める上で必要な知識がメタプログラミングです。コードを読むのにも書くのにも知っているかどうかで大きく影響します。これを読みきった頃には中級者に達していると言っても良いでしょう。 パーフェクトRuby ここまで学んだ知識の穴埋めをしてくれるでしょう。実践力向上に役立ちます。 パーフェクトRubyOnRails Rubyを使う上で
2014年04月09日11:24 Ruby JavaScript jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも JSON を返すときに、良い感じにごにょごにょしたいみたいなときってあるじゃないですか。そういうときに jbuilder ではどうやるのかなーと思ってちょっと調べたのでメモしておきます。 基本的な使い方はこんな感じです。 # こう書くと json.user do |json| json.nickname @user.name end # こうなる { "user": { "nickname": "sasata299" } } ただ、これだとキーの部分("nickname" の部分)が定数となってしまい、変数が使えません。変数を使ってキーを動的に変えたい場合には set! というメソッドを使います。 例えば、"nickname"
はじめに みなさん、2014-08-14 26:00 みたいな時間を扱おうとして困ってませんか? 文字として保存するだけならまだしも、これを元に現在時刻と比較して・・・とかやろうとすると色々大変です。 この記事ではそんな24時間超えの時間を楽ちんに扱うことができる Chronic という gem を紹介します。 そもそも何が困るのか Ruby の time ライブラリには大変便利な Time.parse メソッドがあります。 が、困ったことにこいつは 26:00 みたいな時間は理解してくれません。 irb で実行してみると以下の様なエラーがでます。 >> Time.parse('2014-08-14 26:00') ArgumentError: argument out of range 日付は 2014-02-31 とかでも良きに計らってくれるのに、時間はすごくきっちりしています。 24
Rails 4.2.0 beta1: Active Job, Deliver Later, Adequate Record, Web Console We’re putting the final touches on the first major new release of Rails in its second decade of life. While most software would be in a retirement home after a decade of operation, Rails has never been more fit, and this release is packed with goodies that’ll make your work even easier, your apps even faster, and the whole
シングルページアプリケーションやモバイルアプリなどの普及により、サーバサイドではJSONを出力するWeb APIの必要性が高くなってきています。みなさんはどのようにWeb APIを作っているでしょうか。 JSONはビュー RailsでJSON APIを定義する時、素のままでやろうとすると コントーラでto_jsonを呼んだり、モデルにas_jsonを定義したりすることになるかと思います。 モデルに書くとAPIによって出力内容を変えたい場合にとても苦労します。 API数が増えれば増えるほどモデルが複雑になっていきます。 APIレスポンスとしてのJSONはコントローラやモデルに書くべきでしょうか? ビューに書いた方が自然ではないでしょうか? これはRailsでの話ですが、Railsに限らず、フレームワークを使ってWeb APIを作るときに一般的にあてはまることだと思います。 変化に強い、再利用
開発の効率を大きく向上してくれるgem Pryをさらに使いこなすための便利なコマンド19個をまとめてみました。標準のコマンドをしっかり理解してPryの使いこなしを目指します! (04/16 20:55) オススメの記事を追加その2 🎃 オススメ記事Pry の簡易的なコマンドまとめ Pryの設定ファイルや、関連Gemの簡易的なコマンドをまとめてくれている記事。この記事をひととおり読んだあとに、設定をいじると捗るかも! Rails4 今のところ最強なデバッグツール達 開発やテスト環境で使っているGemfileの紹介。pryについてもかなり丁寧に書かれています! Ruby 2.1の基本構文/基本文法まとめ&Pryの使い方 オープンソースのオブジェクト指向プログラミング言語「Ruby」の文法をゼロから学ぶための入門連載。 🐞 (1) helphelpはコマンドの一覧と英語での説明を表示してくれ
require "browser" browser = Browser.new("Some User Agent", accept_language: "en-us") # General info browser.bot? browser.chrome? browser.chromium_based? browser.core_media? browser.duck_duck_go? browser.edge? # Newest MS browser browser.electron? # Electron Framework browser.firefox? browser.full_version browser.ie? browser.ie?(6) # detect specific IE version browser.ie?([">8", "<10"]) # detect sp
更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基本的には変わらないと思います。リンクは可能なものについては日本語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く