タグ

2019年4月4日のブックマーク (15件)

  • Ransackのススメ - Qiita

    Railsアプリで検索機能を実装するケースは非常に多いと思います。 簡単な検索であればwhereとLIKEを使って書けますし、やや複雑なものもeverywhereが便利ですが、ここではもっと複雑な条件の組み合わせを実装する時に便利なransackを紹介します。 基 searchメソッドで条件を指定し、resultメソッドで結果を返します。 resutはActiveRecord::Relationを返すので、SQLは普通のActiveRecord同様遅延評価されますし、さらにwhereを繋げたり、kaminariでページングしたりすることもできます。また、to_sqlで発行されるSQLを確認することもできます。 もう少し詳しく書くと、searchはModelまたはActiveRecord::RelationをレシーバにしてRansack:Searchを返し、Ransack:search#r

    Ransackのススメ - Qiita
  • Ruby: `super`キーワードの4つの側面(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The super keyword – Mehdi Farsi – Medium 原文公開日: 2018/05/16 著者: Mehdi Farsi サイト: http://ruby.devscoop.fr/ Ruby/Railsのニュースレター「DevScoop-Ruby」を発行するフランスのサイトです。 同サイトより 日語タイトルは内容に即しました Ruby: superキーワードの4つの側面(翻訳) 私の発行するRuby 💌ニュースレター💌はこちらです!ご自由にサブスクライブいただけます!🚀 記事では以下のトピックについて扱います。 暗黙の引数 super vs super() ブロック付きsuper ancestorsチェイン付きsuper 暗黙の引数 引数を使うメソッドが、子クラスのどれかにあるメソッドによって

    Ruby: `super`キーワードの4つの側面(翻訳)|TechRacho by BPS株式会社
  • 便利なのが登場!スマホにもスクロール時に滑らかなアニメーションを適用できる超軽量スクリプト -lax.js

    デスクトップでもスマホでもスクロールした際に、非常に滑らかで美しいアニメーションを簡単に実装できるシンプルで2Kbの超軽量JavaScriptを紹介します。 他のスクリプトへの依存は無く、ReactVue.jsもサポートされています。 lax.js -GitHub lax.jsの特徴 lax.jsのデモ lax.jsの使い方 lax.jsの特徴 lax.jsはVanilla Javascriptで書かれた2Kbの超軽量スクリプトです。 スクロールをトリガーにあらゆる要素にアニメーションが適用できます。 パフォーマンス面でも施策がとられており、デスクトップでもスマホでも非常に滑らかなアニメーションが実現できます。 lax.jsのデモ デモでは実際のアニメーションを試すことができます。 デスクトップ・スマホ両方の環境でお試しください。 デモページ lax.jsではパフォーマンスを向上させるた

    便利なのが登場!スマホにもスクロール時に滑らかなアニメーションを適用できる超軽量スクリプト -lax.js
  • Ruby の refinements の使い途 - Qiita

    Ruby で,特定のクラスやモジュールを拡張する方法として refinements というものがある。Ruby 2.0 で試験的に導入され,Ruby 2.1 で正式に採用された。 一言で言えば,「拡張はするんだけど,その拡張はあるスコープ内でのみ効く。スコープ外では元のまま」を実現する仕組みだ。 ここでは,単位換算のために Numeric を拡張するということをやってみる。 動機 cairo というグラフィックライブラリーがある。PDF や PNG や EPS なんかを統一的なインターフェースで描画・生成することができる。 Ruby にはその名もずばり cairo という gem があり,cairo の機能が簡単に使える。 このライブラリーで PDF を作るとき,寸法の単位は pt(ポイント)を使用しなければならない。 そのため,たとえば,A4 判(横 210 mm,縦 297 mm)の

    Ruby の refinements の使い途 - Qiita
  • Ruby on Rails アプリケーションにおけるモンキーパッチの当て方 - クックパッド開発者ブログ

    技術部の牧です。 今日はモンキーパッチの話をします。 モンキーパッチとは何か そもそもモンキーパッチ (monkey patch) とは何でしょうか? 端的に言えば、言語の組み込みクラスやライブラリ、その他外部ライブラリの挙動を、動的に拡張する仕組みをモンキーパッチと呼びます。 *1 例えば、Ruby のモンキーパッチのすごく単純な例として以下のようなものがあります。 module NilClassExtension def empty? true end end NilClass.prepend(NilClassExtension) インスタンスが空であるかどうかを判定するメソッドとしての #empty? は String や Array など様々なクラスに存在しますが、 nil を唯一のインスタンスとする NilClass には来は存在しません。 このモンキーパッチを導入することで

    Ruby on Rails アプリケーションにおけるモンキーパッチの当て方 - クックパッド開発者ブログ
  • 基本を押さえる!アプリケーション開発:設計編 - Qiita

  • RailsでAPIをつくるときのエラー処理 - Qiita

    例外を利用して実装すると便利な場合が多い この投稿では、HTTP経由でJSONを返すようなWeb APIRailsを利用して実装するとき、エラーレスポンスを返す場合の処理をどう実装するとやりやすいのか、というニッチな話題に触れる。APIでエラーを返したいとき、即ち400以上のステータスコードと共にレスポンスを返したいような場合、どう実装するのが良いか。もしリクエストの処理中にエラーが検出された場合、それ以降の処理を行わずに直ちに中断してエラーレスポンスを返したいという場合が多いため、例外を利用して実装すると便利な場合が多い。 例外を利用しない方が良い場合もある 1つのリクエストに複数の問題が含まれている場合、先に見つけた問題だけを報告するようなエラーレスポンスを返すのか、それとも問題を抱えながらも進めるところまで処理を進めて報告可能な情報を全て含むようなエラーレスポンスを返すのか、という

    RailsでAPIをつくるときのエラー処理 - Qiita
  • UMLでRailsモデリング - Qiita

    Railsエンジニアな皆さん、モデリングしてますか? ひとりでシステム構築しているなら不要かもしれませんが、チームで活動し、ある程度の規模のシステムを構築/改修する場合は、いきなり実装するのではなくモデリングをしましょう! モデリングの手段はたくさんありますが、統一記法であるUMLに従うといろいろ下記のようなメリットを享受できてよいかと思います。 視覚的な表現によって構造・振る舞いを直感的に把握できる 開発に関わるメンバ全員が共通の言語でコミュニケーションできる 記事ではRailsシステムをUMLでモデリングする際の表現方法を紹介します。想定する読者は、上位者の指示の下Railsシステムの構築/改修をすることができ、今後ステップアップとして実装設計とか構造設計と呼ばれるフェーズを独力で実施できることを望むような人(およびその上位者)です。これによって少しでも多くの人が実装設計できるように

    UMLでRailsモデリング - Qiita
  • クラス図(Class Diagram) - UML入門 - IT専科

    クラス図(Class Diagram) クラス図はUMLの基となる図のひとつで、システムを構成するクラスとそれらの関係を表現します。また、各クラスが保持する属性(プロパティ)や操作(メソッド)も表現します。 クラスの表現 クラス図は次の要素で構成されます。 ■クラス名称 クラス名を記述します。抽象クラスの場合はイタリックで記述します。 パッケージ:クラス名 ※パッケージは省略可能 また、クラス種別(ステレオタイプ)を表示するには、<<ステレオタイプ>>の形式でクラス名の上部に記述します。 例 : <<interface>> ■属性 属性は次の形式で記述します。 可視性 名前 : 型 = 初期値 { 制約条件 } ※名前以外は省略可能

  • https://blog.tnantoka.com/posts/90/

  • 認証を含む API 開発で検討すべきこと - ボクココ

    ども、@kimihomです。 API に関する基礎的な話で、なぜ API が重要なのか、APIの実装で注意する点について記述した。 今回はAPI開発において最も頭を悩ます、認証の問題について考えてみたい。 API における認証 よくあるログインが必要なページを考えてみていただきたい。 通常のWebアプリケーションであれば、Cookieという仕組みを使って毎回Webサーバーにアクセスするときにsession idというものを送信し、それとユーザー情報を紐付けたデータを取ってくることで、どんなユーザーからリクエストが来たのかをWebアプリケーション側で判断することができる。これにより、私たちはいつも閲覧しているWebアプリケーションが自分専用の画面として見れるようになっている。 これがAPIになると話は違ってくる。Cookieという仕組みが使えないのである。ということで、なんとかしてAPIにア

    認証を含む API 開発で検討すべきこと - ボクココ
  • OAuth 2.0 全フローの図解と動画 - Qiita

    RFC 6749 (The OAuth 2.0 Authorization Framework) で定義されている 4 つの認可フロー、および、リフレッシュトークンを用いてアクセストークンの再発行を受けるフローの図解及び動画です。動画は YouTube へのリンクとなっています。 English version: Diagrams And Movies Of All The OAuth 2.0 Flows 追記 (2019-07-02) 認可決定エンドポイントからクライアントに認可コードやアクセストークンを渡す方法については、別記事『OAuth 2.0 の認可レスポンスとリダイレクトに関する説明』で解説していますので、ご参照ください。 追記(2020-03-20) この記事の内容を含む、筆者人による『OAuth & OIDC 入門編』解説動画を公開しました! 1. 認可コードフロー RF

    OAuth 2.0 全フローの図解と動画 - Qiita
  • フロントエンジニアが今話題のFirebaseについて語りたい - Qiita

    最初に 最近、Firebaseについての記事をよく見ます。 稚拙ながらもFirebaseについて注目している一人として語りたい。 知識不足(特に後述の歴史の認識)のため、駄文乱文あると思います。ご指摘いただけると幸いです。 React + Redux + Firebaseの実装記事を書きました。 Firebase Databse導入のために考えた4つのポイント。NoSQLと真剣に向き合った時ぶつかったことを書きました。 Firebaseとは mBaas(Mobile Background as a Service)の一つで、Googleの買収で一気に知名度が上がりました。 今までも、十分使えるものでしたが、2016年のGoogle I/Oの発表で統合プラットフォームとしての風格がムンムン漂ってきました。 また、Parse終了の知らせがでるやいなや無料プラン(SPARK)の改変、push n

    フロントエンジニアが今話題のFirebaseについて語りたい - Qiita
  • Okinawa.rb - 沖縄Rubyユーザーグループ

    このサイトでは、Okinawa.rb(沖縄Rubyユーザグループ)の活動内容や参加方法などの説明をしています。 (English follows Japanese) Tweet Star 🏝 Okinawa.rbとは? 沖縄の Ruby/Rails コミュニュティです。沖縄に在住または滞在している Ruby/Rails な方々でワイワイすることを目的として、那覇市や宜野湾市などで Meetup を開いています 👥✨ 沖縄の方はもちろん、たまたま沖縄にフラっと寄っている方も歓迎です!😆👌 🔰 情報の入手、まずはここから ;) 以下のリンク先から Okinawa.rb の活動を知ることができます。Doorkeeper に登録すると次回イベントの案内が届いて便利です 📧💨 Slack - #okinawarb (ruby-jp 内にあります) Twitter - #okinawar

    Okinawa.rb - 沖縄Rubyユーザーグループ
  • DevOpsとSREの違いとは?

    ビズリーチのSREチームでJenkinsおじさんとマネジメントを担当している阪です。もう先月の話になりますが、サンフランシスコで開催されたGoogle Cloud Next ‘18に参加してきました。今回はその場で何度も聞いた class SRE implements DevOps という考え方を紹介させて頂きます。DevOpsとSREの関係性を理解する上で大変参考になりました。 DevOps、SREという単語が使われるようになって時間が経ちましたが、若干のバズワード感も否めず私自身混乱していました。そのような中でSREの草分け的存在であるGoogleが新たに class SRE implements DevOps というメッセージを発信し始めました。これは「SREはDevOpsというinterfaceの実装である」という意味で、いわゆるプログラミング言語の抽象化機能であるinterfa

    DevOpsとSREの違いとは?