Railsに関するcarolina04のブックマーク (41)

  • Extensions :: RuboCop Docs

    It’s possible to extend RuboCop with custom (third-party) cops and formatters. Besides the --require command line option you can also specify ruby files that should be loaded with the optional require directive in the .rubocop.yml file: The paths are directly passed to Kernel.require. If your extension file is not in $LOAD_PATH, you need to specify the path as relative path prefixed with ./ explic

  • Ruby: GemfileとGemfile.lock究極ガイド(翻訳)|TechRacho by BPS株式会社

    概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: The Ultimate Guide to Gemfile and Gemfile.lock | Saeloun Blog 原文公開日: 2022/08/16 原著者: Keshav Biswa サイト: Saeloun Blog Ruby on Railsの開発者なら、GemfileやGemfile.lockを知らない人はいないでしょう。この2つのファイルはRuby gemをインストールするのに欠かせませんが、仕組みを知らないままでは混乱する可能性もあります。記事では、Gemfileとは何か、その中に何があるのか、および使い方について解説します。 最初に、デフォルトのRails 7アプリケーションを作成し、それからGemfileの各行を調べて意味を理解していきましょう。 新規作成したアプリのディレクトリには、Gemfileと

    Ruby: GemfileとGemfile.lock究極ガイド(翻訳)|TechRacho by BPS株式会社
    carolina04
    carolina04 2023/01/19
    “requireを実行すると、アプリケーションが起動するときにすべての関連gemファイルが読み込まれます。”
  • Bundler: gemfile

    carolina04
    carolina04 2023/01/18
    “The argument defaults to the name of the gem. For example, these are identical: gem "nokogiri" gem "nokogiri", :require => "nokogiri" gem "nokogiri", :require => true”
  • Rubyでマルチスレッドプログラミング|TechRacho by BPS株式会社

    RubyはWeb界隈でよく使われてるスクリプト言語の中では比較的簡単に割と格的なマルチスレッドプログラムを書くことができます。 うまく使うとI/O待ちで遅くなっているが、必ずしも順番に行う必要のないプログラムの実行時間を短縮したりすることができます。(たくさんのURLにアクセスしてレスポンスを取得してくるクロウラーなど) しかし現在最も広く使われているRuby1.8ではスレッドの実装はいわゆるグリーンスレッドという実装で、OSによるスレッドを使えないため、マルチコアの恩恵を受けることができないので、大量のデータをマルチコアで処理する目的などで使っても効果が薄い(どころかまったくない)可能性が高いです。 Ruby1.9ではRubyでスレッドの動きを制御しているものの、ネイティブスレッドベースでの動作となっているため、マルチコアの恩恵を受けることができます。 それではさっそく、配列の各要素を

    Rubyでマルチスレッドプログラミング|TechRacho by BPS株式会社
    carolina04
    carolina04 2023/01/16
    “配列の各要素を並列処理できるルーチンを貼付けてみます。 これは一番シンプルな実装で、配列に含まれる要素分だけスレッドを新規に立ち上げて、ガンガン処理させるというものです。”
  • 【Ruby on Rails】ストロングパラメータとは何か? また記載方法は? - Qiita

    *プログラミング超初学者のため、間違いは指摘頂けると大変ありがたいです。 記事の目的 Ruby on Railsでアプリケーション開発を行う際、何かと出てくるこいつ。 調べてわかった気になっては毎回わかってなくて悩まさせれたので、備忘のためにまとめておくものです 1.ストロングパラメータとは 「パラメータを受け取る際に、指定したキーを持つパラメータしか受けとれない様に制限できるもの」 端的にいうと上記の通りです。目的としてはセキュリティ向上のため、といった所でしょうか。 2.もうちょっと具体的に 「指定したキーを持つ」という制限がないとどうなるのでしょうか。 例えばユーザー登録機能を実装していて、登録時に名前、とメールアドレスを求められたとします。 この場合、こちら側が保存したいのは「userテーブルのnameカラム、emailカラムの情報」なのでしょう。 なのでフォームから送られてきたパ

    【Ruby on Rails】ストロングパラメータとは何か? また記載方法は? - Qiita
    carolina04
    carolina04 2022/12/12
    ストロングパラメータは、セキュリティ向上の観点から受け取るパラメータの種別を指定 require → どのテーブルに関する情報? permit → 受け取りたい値の指定は?何を? merge → 他から追加しときたい値は?どこに何を?
  • Railsを使って、S3にファイルをアップロードする。 - t-sanoブログ

    Railsを使って、S3へのファイル直接アップロードを試している。 最終ゴールはAPIとして、クライアントから画像データを受け取って、S3にアップロードすることである。 今回は、第一ステップとして、RailsからS3へのアップロード実現を目指す。 試している工程をメモしておく。 やりたいこと Railsから画像データをS3にアップロードする。 環境 Rails 5.0.0(APIモード) 早速やってみる やりたいことを満たせそうなgemがいくつかありそうだったが、 今回はcarrierwaveを利用する。 ということで、まずは、Gemfileに下記を追加した。 gem 'carrierwave' gem 'fog-aws' gem 'rmagick' carrierwaveは画像ファイルをアップロードに利用するため。 fog-awsはS3に画像ファイルをアップロードするため。 rmagic

    Railsを使って、S3にファイルをアップロードする。 - t-sanoブログ
    carolina04
    carolina04 2022/12/07
    “fog_publicを利用することで、URLへの直アクセスを制御できる。 デフォルトはtrueらしい。 これがtrueの場合は、アップロードしたオブジェクトのアクセス許可に、 全員ダウンロードができる権限が付与される。 falu”
  • 【初学者向け】Rails mergeメソッド - Qiita

    記事の目的 初学者の為、間違っているところはご指摘頂けると幸いです。 備忘録・アウトプット目的で投稿です。 2021/1/10:追記 Qiita初投稿でチェリーの伊藤さんから記事の間違いを指摘頂きました🙇‍♂️ mergeメソッドとは? ストロングパラメータの設定の最後にでてくるmerge。 def review_params params.require(:review).permit( :memo, :image) .merge(user_id:current_user.id) ←これです end mergeメソッドについて(チェリーより引用) なんだこのメソッドは?とRailsの参考書等(Railsチュートリアル、現場Rails)等で調べるもない。 チェリーをみてみると、メソッドについて説明がなされていた。以下、例文と説明。 mergeメソッドを使うことによって、ハッシュリテ

    【初学者向け】Rails mergeメソッド - Qiita
    carolina04
    carolina04 2022/12/06
    “ユーザから受け取ったparamsにはないけれども、レコード作成時に追加したい値がある場合はmergeメソッドで含めることができる”
  • 【Ruby】mapの途中でnextを使用するとnilが入ってしまう罠 - Qiita

    map(またはcollect)はブロックの戻り値を集めた配列を生成してくれる便利なメソッドです。 しかし、ブロックの途中でnextを使用すると意図せずnilが入ってしまう場合があるため、気をつける必要があります。 例えば以下のような数字の配列から偶数を取り出すメソッドを作成したとします。

    【Ruby】mapの途中でnextを使用するとnilが入ってしまう罠 - Qiita
    carolina04
    carolina04 2022/11/16
    “もしnilを配列に入れたくないのであれば、以下のようにmapした後にcompactを行うことで回避することができます。”
  • 【Rails】N+1問題はincludesで万事OKと思っていた。 �

    こんにちは。Webエンジニアとなって2週間経ったオクトと申します。 記事では、N+1問題をincludesさえ付けておけば完璧じゃない?と思っている方を対象に他にもやり方はあるんだよ、もっと良い方法があるよ、ということをシャアしていきます。 かくいう私も上記の対象に先ほどまで入ってました。 これはそんな私向けの記事でもあるんですね。 バリバリにRailsを書いてきた人には、当たり前に感じると思いますが、 ご指摘箇所がありましたらご教授いただけますと幸いです。 前提 Ruby 3.1.1 Rails 6.1.4.6 テーブル構造は以下の通りです。 includesの他に何があるの? 「ねぇねぇ、先に何があるか教えてよ」という声が聞こえてきたので、先に伝えます。 includesの他に主に2つの方法で解消することができます。 クエリ数 関連先での絞り込み 関連先の情報

    【Rails】N+1問題はincludesで万事OKと思っていた。 �
    carolina04
    carolina04 2022/11/09
    “has_many-belongs to の関係であれば、preloadを使用してクエリ発行の負担を減らす。 has_one-belongs to の関係であれば、eager_loadを使用して1クエリでまとめて取得する。 関連先で条件を絞り込みたいときはeager_loadを使用する”
  • Active Recordともっと仲良くなって自然に優しいコードを書くぞ - SmartHR Tech Blog

    こんにちは。SmartHRRails顧問業をしています @willnetです。最近は主にリファクタリングをしています。 SmartHRのバックエンドは基的にRubyで書かれています。しかし入社してくるバックエンドエンジニアは必ずしもRubyRailsを長年使ってきた人だけではなく、前職では他言語を使っていてRuby(Rails)はほとんど使ったことがないという人もいます。 webアプリケーションを作る、という点ではどの言語でも抑えるべき点は同じですが、RubyRailsに特化した考え方や書き方もありますよね。SmartHRではそれを効率よく習得してもらうために読書会を開催したり、社内のドキュメントツールに知見を書いて共有したりしています。 僕も社内のドキュメントツールにActive Recordの付き合い方ついて書いたところ、評判が良く「テックブログにしたら?」と言われたので今回一

    Active Recordともっと仲良くなって自然に優しいコードを書くぞ - SmartHR Tech Blog
    carolina04
    carolina04 2022/08/07
    “基本的にpreloadを使い、JOINが必要なときだけeager_loadにする”
  • 【Ruby on Rails】N+1問題ってなんだ? - Qiita

    はじめに Ruby on Rails界隈でよく耳にする「N+1問題」について解説します。 N+1問題を理解することで無駄なSQLの発行を抑え、処理時間の削減に繋げることができます。 ↓読んでほしい人 N+1問題を知らない人 Ruby on Rails初心者〜中級者 性能改善したい人 N+1問題とは ループ処理の中で都度SQLを発行してしまい、大量のSQLが発行されてパフォーマンスが低下してしまう問題のことです。 日常生活で例えるなら、スーパーで商品を1点ずつお会計するようなもの。 それだけ無駄なことを行なっている状態を指します。 え、そんなアホなこと普通はしないって思いますよね? でもRailsを使用していると往往にしてこの問題が発生してしまうのです。 N+1問題の例 会社(companies)とそれに所属する人(users)を例に説明します。 例えばcompaniesテーブルとusers

    【Ruby on Rails】N+1問題ってなんだ? - Qiita
    carolina04
    carolina04 2022/08/06
    “N+1問題とは、はじめの1回のSQLでModelを取得し、そのModelに対するデータ数分(N回)のSQLが実行されてしまう状態のこと”
  • RSpecえかきうた|TechRacho by BPS株式会社

    初めまして、takanekoと申します。 入社して以来2年くらい「ブログ書きます!」と言いつつすっぽかし続けたダメWebエンジニアです。 RSpecえかきうた? 「ぼくのあーるすぺっくのかきじゅん」(僕のRSpecの書き順)です。 RSpecの書き方わからない、という方のために、0から書き上げる際の参考になればと思い書きました。 Specを書き始めましょう RSpecにはModel Spec、Feature Spec、Request Spec、System Specなど色々種類がありますが、今回はRequest Specを書いていきます。APIとかのテストをする際に使うSpecです。 書き順がメイントピックなので、細かい実装の妥当性とかは無視して、以下のような簡単な仕様のユーザ登録APIでSpecを書きたいと思います。 API仕様 URL POST /users(format: :json

    RSpecえかきうた|TechRacho by BPS株式会社
  • 【GraphQL 開発超入門】React × GraphQL × Rails でアプリケーションを作る

    このでは、GraphQLを使ったRails×ReactのSPA(シングルページアプリケーション)の開発方法について解説します。 「GraphQLについて何となくわかったけど、どのようにGraphQLを使って開発していくのかわからない」という方にオススメの一冊です。

    【GraphQL 開発超入門】React × GraphQL × Rails でアプリケーションを作る
  • Rails API Testing Best Practices · Matthew Lehner

    Something went wrong! Hang in there while we get back on track Writing an API is almost a given with modern web applications. I’d like to lay out some simple guidelines and best practises for Rails API testing. We need to determine what to test and why it should be tested. Once we’ve established what we will be writing tests for, we will set up RSpec to do this quickly and easily. Basically we’ll

  • いまさらながら bundle exec ってなんだっけ? | Bamboo Silo

    carolina04
    carolina04 2022/03/30
    “bundle exec 無しなら システム共通のコマンドが実行される(rbenvで指定したrubyバージョンの配下の環境)。 システム共通railsが存在するなら、それが実行される。 もし、システム共通railsが存在しない状態なら、r”
  • bundle execって必要なの? - Qiita

    rails sって書いても、bundle exec rails sって書いても同じ動きをするように見えるんですが、何が違うのでしょうか。気になったので調べてみました。 結論 bundle execをつけないと、Gemfile.lockに基づかずにgemのバージョンが決定される bundle execをつけると、Gemfile.lockに書かれているバージョンのgemが動く bin/rspecのように書くと、springの恩恵を受けて動作が早くなる railsコマンドだけはbinを省略してもbin/railsと解釈される だから railsコマンドは何も付けずに実行 binディレクトリにファイルが存在するコマンドはbin/◯◯ それ以外のコマンドはbundle exec ◯◯ vscode remote container等でコンテナ内で開発してる場合はbundle exec不要 そもそもB

    bundle execって必要なの? - Qiita
    carolina04
    carolina04 2022/03/30
    “railsコマンドは何も付けずに実行 binディレクトリにファイルが存在するコマンドはbin/◯◯ それ以外のコマンドはbundle exec ◯◯ vscode remote container等でコンテナ内で開発してる場合はbundle exec不要”
  • DBへデータを追加する|【Rails×React】UberEats風アプリを作りながら、SPA開発を学ぼう|Techpit

    carolina04
    carolina04 2022/03/13
    “通常のメソッドはその処理が失敗するとfalseを返します。一方、 ! (エクスクラメーションマーク)がついたメソッド、例えばsave!、update!などが失敗すると例外を発生させます”
  • 必要なModelファイルを作成する|【Rails×React】UberEats風アプリを作りながら、SPA開発を学ぼう|Techpit

    教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。 その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

    必要なModelファイルを作成する|【Rails×React】UberEats風アプリを作りながら、SPA開発を学ぼう|Techpit
    carolina04
    carolina04 2022/03/13
    “データすべて(モデルそのもの)に対する操作はクラスメソッド。特定のデータに対する操作はインスタンスメソッド”
  • 【Ruby on Rails】tryとtry!と&.(ぼっち演算子)の違い - Qiita

    RubyonRailsでは似たようなメソッド(演算子)でtry、try!、&.の3種類を使用できます。 どれを使うか悩んでいる方のために結論から書くと、 以下の理由から「&.」を使用するのが最も良いと考えています。 tryはNoMethodErrorを握りつぶしてしまうので、極力使用しないのがベター try!より&.の方が使える環境が多い(try!はRails、&.はRuby) try!より&.の方が高速 try!より&.の方がコードの記述量が少なく可読性が高い ではそれぞれのメソッド(演算子)とその理由について詳細を説明します。

    【Ruby on Rails】tryとtry!と&.(ぼっち演算子)の違い - Qiita
    carolina04
    carolina04 2022/01/19
    “ tryはNoMethodErrorを握りつぶしてしまうので、極力使用しないのがベター try!より&.の方が使える環境が多い(try!はRails、&.はRuby) try!より&.の方が高速 try!より&.の方がコードの記述量が少なく可読性が高い”
  • ActiveRecordのincludesは使わずにpreloadとeager_loadを使い分ける理由 - Qiita

    はじめに ActiveRecordでN+1問題やスロークエリを解消するためにeager loadingを行う場合、普段Railsを使って開発されている方であれば、パッと思いつくのはincludesではないでしょうか?もしくは、preloadやeager_loadを使用しますよね。 この記事では、Webサイト表示パフォーマンスを保つため、ActiveRecordのメソッドの違いや、どいういう場合に使ったら良いのか、どいういう場合には使わない方が良いのかについて書きました。 実際に Railsアプリケーションを作成して解説していきます。 用語の説明と分類「ORM の Eager loading と Lazy loading」 Webサイト表示パフォーマンスを保つため、ORMRailsではActiveRecord)では、Eager loading と Lazy laodingというものをサポー

    ActiveRecordのincludesは使わずにpreloadとeager_loadを使い分ける理由 - Qiita
    carolina04
    carolina04 2021/12/27
    “includesは利用しない方が良いでしょう。なぜなら、includesは、preloadとeager_loadをよしなに振り分けるので。preloadと、eager_loadの特徴を理解していれば、includesが登場する場面は、ほとんどないと思います”