Rubyに関するmumei-0のブックマーク (11)

  • Ruby on Rails + Slim 環境で Vue.js の Slot を使う。

    バージョン情報 Ruby 2.7.1 Rails 6.0.2.2 Vue 2.6.11 vue-turbolinks 2.2.2 解決したい問題 Ruby on Rails + Slim 環境で Vue の Slot を使いたい。 ネット上で情報が少なったので、記録しようと思う。 試行錯誤して、動いたものを以下記載する。 Vue公式 名前付きスロット Slim

    Ruby on Rails + Slim 環境で Vue.js の Slot を使う。
    mumei-0
    mumei-0 2021/12/18
    書きました。#zenn
  • Ruby2.7のpipeline operatorで+や-等の演算子をはじいたのはなぜなんでしょうか?

    回答: Pipeline operatorはまだホットな状態で(2019–06–15現在)、今後も変更が加わる可能性が高いのですが、現状において質問の意味を推測すると、pipeline operator (|>) において、当初 [code]1 |>+ 2 #=> 3 (1.+(2) と同じ意味に解釈されるから) [/code]となる仕様だったのを禁止したのはなぜかということですが、単に読みやすさに貢献しないからです。それだけでなく積極的に読みにくさに貢献してますね。 Pipeline operatorは以下の指摘があり、もっともだと思う点もあるのでなんらかの対処を考えています。 ...

    Ruby2.7のpipeline operatorで+や-等の演算子をはじいたのはなぜなんでしょうか?
    mumei-0
    mumei-0 2021/10/28
    “追記[2019–08–29] 本日付けでRubyからpipeline operatorは削除されました。ユーザーが期待するものとの解離が私が当初想定した以上に大きかったからです。”
  • 駆け出しエンジニアのためのRuby便利メソッド - Qiita

    はじめに 駆け出しエンジニアの私が、AtCoderやpaizaでアルゴリズム問題を解いていく中で、とても便利だったメソッドを書き残す。 puts, p, printの違い 自分の言葉で説明しようと思ったが、web上に山ほど記事があったので、止めることにする。 【Ruby超入門】print、puts、pの違い https://yukimasablog.com/ruby-print-puts-p 【Ruby】p, puts, printメソッドの違い https://qiita.com/rkkmshde/items/daf75aca9675f5a01d17 デバッグの時に使いこなせると、複雑なコードを書く時にかなり効率よくエラーやその原因に気づける。 三項演算子 if 〜 else 〜 end をもっと効率よく書くことができる。 number = 24 if number.even? n =

    駆け出しエンジニアのためのRuby便利メソッド - Qiita
    mumei-0
    mumei-0 2021/10/28
    JavaScript の filter みたいなものか。“select: {}ブロック内の式がtrueになる要素だけを抽出する。”
  • コードのドキュメント化 | RubyMine ドキュメント

    コードのドキュメント化 YARD(英語) および RDoc(英語) は、コードをドキュメント化するために複数のライブラリで使用される最も一般的なドキュメント生成ツールです。RubyMine では、クイックドキュメントルックアップを使用して、YARD または RDoc 構文で記述されたドキュメントを表示できます。さらに、RubyMine は、YARD タグで動作する拡張機能を提供します。 欠落している YARD タグを作成する YARD タグの有効性を確認して修正する YARD タグを活用して、コードインサイトを向上させる (たとえば、オブジェクト型の決定、メソッドのパラメーター情報の表示など。) YARD タグの作成と修正 ここでは、いくつかのパラメーターをとるメソッドを文書化する方法を示します。この場合、メソッドは 2 つの引数を取り、これらの値の積を返します。

    コードのドキュメント化 | RubyMine ドキュメント
    mumei-0
    mumei-0 2021/10/28
    “YARD(英語) および RDoc(英語) は、コードをドキュメント化するために複数のライブラリで使用される最も一般的なドキュメント生成ツールです。”
  • サンプルコードでわかる!Ruby 2.7の新機能・パターンマッチ(前編) - Qiita

    はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 2.7については2019年11月23日にpreview3がリリースされました。 Ruby 2.7.0-preview3 リリース この記事ではRuby 2.7で導入される変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 ただし、Ruby 2.7は多くの新機能や変更点があり、1つの記事に収まらないのでいくつかの記事に分けて書いていきます。 記事で紹介するのはパターンマッチ(もしくはパターンマッチング)です。 前編と後編にわかれています パターンマッチは説明する内容が多いので、次のように前編と後編の2部構成になっています。 前編 = パターンマッチの概要、case文っぽい使い方、配列やハッシュとのマッチ、変数への代入 後編 = 自作クラスをパターンマッチで活用する方法、パターン名の整理

    サンプルコードでわかる!Ruby 2.7の新機能・パターンマッチ(前編) - Qiita
    mumei-0
    mumei-0 2021/10/27
    “Rubyにおけるパターンマッチはざっくりいうと、「多重代入ができるcase文」です”
  • Ruby 定数について - Qiita

    Rubyの定数、注意点についてまとめておく 注意点 Rubyの定数は、多言語とは異なる仕様になっている 異なる仕様について プログラミング言語における定数とは 書き換え不可能 wikipediaで調べてみる 一度初期化するとその内容を変更することはできない。よって、内容が変化しないことが保証される名前が必要なときに使用される。 (https://ja.wikipedia.org/wiki/%E5%AE%9A%E6%95%B0_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)) 定数の内容は変化しない、これはruby以外の言語を学んだ人であれば当たり前のことだろう。 Rubyおける定数とは 書き換え可能 Rubyの定数について詳しくみていく 定義 アルファベット大文字で始まる識別子 例:Abc、ABC、ABc

    Ruby 定数について - Qiita
    mumei-0
    mumei-0 2021/10/27
    “Rubyおける定数とは 書き換え可能”
  • 【速報】Ruby の trunk に pipeline operator がはいった - Qiita

    ブログ記事からの転載です。 追記 pipeline operator の議論は RubyKaigi 2019 の Ruby Committers vs the World で話が出ていたみたいですね。 [JA|EN] Ruby Committers vs the World - YouTube 取り急ぎまとめ。 今日、Ruby の開発者会議に参加させて頂いて、さっき返ってきて ML みてたんですがいつの間にか pipeline operator がマージされていました。 思わず3度ぐらい ML と commit を見直してしまいました。 え、ほんまに??? commit: Add pipeline operator [Feature #15799] · ruby/ruby@f169043 · GitHub issues: Feature #15799: pipeline operator

    【速報】Ruby の trunk に pipeline operator がはいった - Qiita
    mumei-0
    mumei-0 2021/10/27
    “plus(5, 2) と書かずに plus 5, 2 |> to_s(2) というようにメソッドチェーンする事が出来ます。”
  • [解説] SQLクエリのN+1問題 - Qiita

    ISUCON のブログ記事等で当たり前に出てくる「N+1問題」を知らなかったので、調査した結果です。 TL;DR N+1問題とは、このブログ記事にもう全部書いていますが、 N件のデータ行を持つテーブルをごそっと読みだすのに1回 別のテーブルから、先述のテーブルの各行に紐づくデータを(1件ずつ)読み出すのに計N回 合計でN+1回のクエリを実行している状態です。 (1+N問題と考えた方が理解しやすい) Nが大きいときは処理に非常に時間がかかるため、対応が必要になります。 対応策としては、 JOIN句による表の結合 Eager Loading(必要なデータを事前にロード) の2種類があります。 例 図書館貸出管理システムを考えます。 以下のように、「書籍」テーブルと、図書館の「利用者1」テーブルがあるとします。 各書籍について、借りている人の名前と、年齢を知りたいときを考えます。 欲しいのは

    [解説] SQLクエリのN+1問題 - Qiita
    mumei-0
    mumei-0 2021/10/08
    確かに。“(1+N問題と考えた方が理解しやすい)”
  • Railsで大量データを削除する方法と懸念点 - Qiita

    はじめに 皆様、こんにちは! 佐久間まゆちゃんのプロデューサーの@hiroki_tanakaです。 私はRailsアプリケーションの保守に関わっているのですが先日、番環境に大量の不要データが存在していることが判明しました。 それがキッカケでRailsでの大量データの削除方法を検討したので、調べたことをまとめました。 Railsにおけるdestroyとdeleteの違い まず、Railsには2つのデータ削除メソッドのdestroyとdeleteがあります。 それぞれの違いを簡単にまとめたいと思います。 destroy/destroy! ActiveRecordを介して指定した1レコードを削除します。 ActiveRecordを介するためcallbackメソッド(before_destroyやafter_destroyなど)やvalidationが機能します。 また、削除対象のModelにd

    Railsで大量データを削除する方法と懸念点 - Qiita
    mumei-0
    mumei-0 2021/10/08
    “トランザクションを張った上で1000件毎にデータを抽出し、destroy!を行う。削除処理の合間に0.1秒のsleepを入れる。”
  • Railsアプリの処理を100倍以上に高速化して得られた知見 | Recruit Tech Blog

    はじめまして。2019年4月から妊娠・出産アプリ『Babyプラス』の開発チームにJOINした濱田です。 『Babyプラス』のバックエンドはRailsで実装されているのですが、とあるCSV生成処理がとても遅かったので100倍以上に高速化しました。この過程でRailsアプリの処理高速化に関する以下の知見が得られたので、具体例を交えて共有します。この知見は、ActiveRecordを使用してMySQLなどのRDBMSからデータ抽出をする様々な場面で活用できると思います。 いわゆる「N+1問題」を起こさないのは基 「ActiveRecordインスタンスの生成コスト」はそれなりに高い pluckはjoinsと組み合わせることで他テーブルのカラム値も取得できる 前提: DBスキーマとデータ規模 今回の処理高速化に関わるモデルのDBスキーマとデータ規模は以下の通りです。なお、これらはエントリ向けに少

    Railsアプリの処理を100倍以上に高速化して得られた知見 | Recruit Tech Blog
    mumei-0
    mumei-0 2021/10/08
    “いわゆる「N+1問題」を起こさないのは基本 「ActiveRecordインスタンスの生成コスト」はそれなりに高い”
  • [Rails5]Deviseの認証メールで画像が表示されないからカスタムしてみた。 - Qiita

    初めに 認証メールに画像やアイコンを載せたく、試みようとしたらDeviseの認証メールをカスタマイズしないといけなかったので、その経緯を記してみます( ..)φメモメモ カスタマイズせずに試みたコード view <!DOCTYPE html> <html> <%= stylesheet_link_tag 'mailer', media: 'all', 'data-turbolinks-track': 'reload' %> <p><%= @email %> ○○○へようこそ!</p> <p>メールアドレスの確認をした後にご利用頂けます。</p> <%= image_tag 'mail.png' %>

    [Rails5]Deviseの認証メールで画像が表示されないからカスタムしてみた。 - Qiita
    mumei-0
    mumei-0 2021/10/05
    この手法で成功した。
  • 1