タグ

ブックマーク / qiita.com/jnchito (15)

  • Rails 4.1以降のコンソールコマンドは必ず bin/ を付けなきゃいけないの? - Qiita

    はじめに:Springが起動するコマンドはいったいどれだ!? Rails 4.1からはアプリケーションpreloaderとしてSpringが標準で組みこまれています。 Springを使うとバックグラウンドでRailsサーバーが動いている状態になるので、rails g やrakeコマンドが素早く起動します。 一般に、Springを使う場合は bin/rails g や bin/rake -T のように、bin/ を付けるように言われていますが、これは必須なんでしょうか? bin/ を付けずに実行すると、何が起きるんでしょうか? というわけでちょっと調べてみました。 対象バージョン Rails 4.1または4.2 railsコマンドの場合:bin/ を付けなくても大丈夫! まず最初に、bin/rails c と rails c を実行して、Springのstatusがどう変わるか確認してみまし

    Rails 4.1以降のコンソールコマンドは必ず bin/ を付けなきゃいけないの? - Qiita
  • 【翻訳】Bundler 3アップグレードガイド - Qiita

    はじめに Rubyのパッケージ管理ツールであるBundlerはバージョン 3で後方互換性が失われる様々な変更点が導入される予定になっています。 そして、バージョン 3への移行を容易にするため、バージョン 2.1ではバージョン 3で使えなくなる機能を使うと警告が出ます。 これらの内容については公式リポジトリのアップグレードガイドで詳細が説明されています。 この記事は上記のアップグレードガイドの日語訳です。 翻訳したアップグレードガイドの版について この記事で翻訳したのは2019年10月3日に更新された以下の版です。 (翻訳時点のBundlerの最新バージョンは2.1.4) 今後更新される可能性もあるため、必要に応じて最新の版を参照するようにしてください。 2020.1.15追記 2020年1月14日更新の版に追従しました。 この版における主な変更点は以下のとおりです。cf. rubygem

    【翻訳】Bundler 3アップグレードガイド - Qiita
  • 【翻訳】factory_bot 4.11で非推奨になった静的属性(static attributes) - Qiita

    TL;DR(この記事のざっくりまとめ) factory_botの静的な属性は昔から混乱の原因になっており、開発チームのサポートの手間を増やしていた。 この混乱をなくすため、factory_bot 4.11で静的な属性を非推奨とし、バージョン5で完全に削除する。 新しいファクトリ定義では常に動的な属性(ブロックを伴う属性定義)を使う必要がある。 rubocop-rspec gemをインストールして以下のコマンドを実行すれば、一括で静的な属性を動的な属性に書き換えることができる。 rubocop \ --require rubocop-rspec \ --only FactoryBot/AttributeDefinedStatically \ --auto-correct はじめに 2018年8月16日にリリースされたfactory_bot 4.11から、ファクトリの定義で静的な属性(stat

    【翻訳】factory_bot 4.11で非推奨になった静的属性(static attributes) - Qiita
  • サンプルコードでわかる!Ruby 2.6の主な新機能と変更点 - Qiita

    はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 2.6については2018年12月6日にrc1がリリースされました。 Ruby 2.6.0-rc1 Released この記事ではRuby 2.6で導入される変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 2018.12.26追記: 内容を一部更新しました 2018年12月23日と、Ruby 2.6.0リリース後の2018年12月26日にそれぞれ内容を一部更新しました。 具体的な変更点は以下のdiffをご覧ください。 2018年12月23日の変更点 2018年12月26日の変更点 記事の情報源 記事は以下のような情報源をベースにして、記事を執筆しています。 Ruby 2.6.0のリリースノート Ruby 2.6.0のNEWS リリースノートやNEWSに記載されている各種issue

    サンプルコードでわかる!Ruby 2.6の主な新機能と変更点 - Qiita
  • コードレビューの極意。それは「自分のことは棚に上げる」こと!! - Qiita

    はじめに:コードを良くするためなら遠慮は不要 昨日Twitterに投稿した内容が思った以上に拡散されていたので、タイムラインに流れてしまわないようにQiitaにも書いておきます。 内容は上に書いてあるとおりです。 コードレビューはコードの問題点を指摘し、そのコードを良くすることが第一の目的です。 そのため、少しでもおかしいと思った部分は遠慮せずにどんどんツッコむ必要があります。 しかし、レビューする側が「これ、自分もあまりできてないんだよなあ」「お前もできてないじゃん!って言われたら返す言葉もないし・・・」などと思って遠慮してしまうと、コードを改善できるせっかくのチャンスが失われてしまいます。 「自分ができているかどうか」と「そのコードを改善すること」は、それぞれ別の問題です。 なので、レビューする人は自分のことを棚に上げてでも、コードの問題点を指摘する必要があります。 また、レビューされ

    コードレビューの極意。それは「自分のことは棚に上げる」こと!! - Qiita
  • Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳) - Qiita

    はじめに 先日スタック・オーバーフローでこんな質問に回答しました。 webサーバー、アプリケーションサーバー、Rackといった仕様や概念と、WEBrick、Unicorn、Pumaといった実装の関係が頭の中で結びつきません 質問者の方はwebサーバー、アプリケーションサーバー、Rack、Unicorn、Pumaと言った用語や概念の理解がこんがらかっているように見えたので、このあたりをきれいに説明している記事を探していたところ、以下の記事を見つけました。 A web server vs. an app server - Justin Weiss スタック・オーバーフローでは記事の一部を抜粋して「ざっくり翻訳」したのですが、それだけで終わらせるのはもったいない気がしたので、Qiitaには全文を翻訳して載せておこうと思います。 これを読むと、あなたもwebサーバーとアプリケーションサーバーの違い

    Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳) - Qiita
  • サンプルコードでわかる!Ruby 2.4の新機能と変更点 - Qiita

    はじめに 2016年9月にRuby 2.4のpreview2が、11月にpreview3が、12月11日にrc1がリリースされました(参考1、参考2、参考3)。 僕は早速インストールして新機能を試してみましたが、みなさんはいかがでしょうか? というわけで、この記事では僕が実際に動かして確認したRuby 2.4の変更点や新機能をサンプルコード付きでまとめます。 この記事は大きく分けて次のセクションに分かれています。 文法上の変更点 後方互換性が失われる変更点 パフォーマンス改善 オブジェクト全般の新機能 主に数値に関連する新機能 主に文字列・正規表現に関連する新機能 主に配列・ハッシュに関連する新機能 ディレクトリやファイルに関連する新機能 その他の標準ライブラリに関連する新機能 スレッドに関連する新機能 なお、Ruby 2.4は2016年12月25日にリリースされる予定です。 記事はrc

    サンプルコードでわかる!Ruby 2.4の新機能と変更点 - Qiita
  • Railsの意外な落とし穴? before_xxx で false を返すと処理を停止するが、 nil を返すと続行する - Qiita

    Railsの意外な落とし穴? before_xxx で false を返すと処理を停止するが、 nil を返すと続行するRails はじめに、というか最初に結論 この記事では以下のようなRails(ActiveRecord)のコールバック仕様を説明します。 before_xxx が false を返した場合のみ保存処理が停止する before_xxx が nil を返した場合や、after_xxx が false を返した場合はそのまま保存される この仕様を知らなかった人は先に進みましょう。 知っていた人も興味があれば続きを読んでください。 動作確認したRailsバージョン Rails 4.2.4 Railsあるある問題のひとつ、「before_xxx の戻り値を間違える」 知っている人は知っている、そして知っている人でもたまにうっかり間違える、Railsのよくある落とし穴として befo

    Railsの意外な落とし穴? before_xxx で false を返すと処理を停止するが、 nil を返すと続行する - Qiita
  • Arelでクエリを書くのはやめた方が良い5つの理由

    はじめに:Arelって何? みなさん、Arel(アレル)ってご存知ですか? ArelはActive Recordの内部で使用されるSQL生成ライブラリです。 Railsのクエリの書き方をググると、ときどきArelを使った実装例が見つかるので、見たことがある、もしくは何度か使ったことがある、という人もいると思います。 Arelをよく知らない人のために、Arelの利用例をちょっと見てみましょう。 たとえば「コメント文中に、"ruby"が含まれるユーザープロフィールを検索したい」という場合、Rails標準のクエリインターフェースを使うと条件部分のSQLを文字列で書く必要があります。(PostgreSQL環境を想定) Profile.where( "profiles.comment ILIKE ?", "%ruby%" ).to_sql #=> SELECT "profiles".* # FROM

    Arelでクエリを書くのはやめた方が良い5つの理由
  • ActiveRecord serialize / store の甘い誘惑を断ち切ろう - Qiita

    はじめに みなさん、ActiveRecordの serialize や store は好きですか? 僕は 嫌い です。 serialize や store は原則として使わない方がみんな幸せになれると思っています。 なのでみなさんも serialize や store は使わないようにしてください。 以上! ・・・で終わったら意味がわからないと思うので、この件についてなぜダメなのかをちょっと詳しく掘り下げてみます。 そもそも serialize / store とは? serialize や store は ActiveRecord の機能の一つです。 text型のカラムに配列やハッシュなど、好きな形式のデータを放り込めます。 テーブルやカラムを追加しなくても自由にデータが保存できる 魔法のような機能 (注:皮肉)です。 サンプルコードを使ってこの機能を確認してみましょう。 以下の例では

    ActiveRecord serialize / store の甘い誘惑を断ち切ろう - Qiita
  • あなたがマスターしたのはいくつ? Railsを習得するために必要な技術要素の一覧 - Qiita

    これはなんですか? これは「This is Why Learning Rails is Hard(Railsの習得が大変な理由はこれだ)」という海外記事に載っているマインドマップを日語化&リスト化したものです。 元記事には「Railsを習得するために必要な技術要素の一覧」を表す、以下のようなマインドマップが載っています。 長年Railsの開発に携わってきた人間として、このマインドマップは「うん、たしかに!」と非常に納得できる内容です。 ただし、サイズの大きな画像なので一覧性に欠けるのと、英語なので日人にとってはぱっと頭に入りづらい点があるのも否めません。 そこでいつでもぱっと確認できるように、このマインドマップ内容を日語化&リスト化することにしました。 このリストを読んで、自分がすでに身につけている技術要素は何か、また、これから習得が必要な技術要素にはどんなものがあるのか、各自で確認

    あなたがマスターしたのはいくつ? Railsを習得するために必要な技術要素の一覧 - Qiita
  • Railsアプリケーションにおけるエラー処理(例外処理)の考え方 - Qiita

    はじめに Railsアプリケーションを格的に作り込んでいくと、「エラー」とは無縁ではいられません。 しょうもないバグでエラーが発生することもありますし、ほとんど不可抗力ともいえるような大規模なネットワーク障害でエラーが発生することもあります。 エラーの種類がなんであれ、エラーが起きた場合は「原因を素早く特定し、速やかに復旧させること」と「あるエラーが引き金になって、さらに大きなエラーに引き起こさないようにすること」が重要です。 エラー処理を適切に実装していれば、原因の特定や復旧もすばやくできますし、さらに大きなエラーを引き起こす可能性も少ないです。 また、ソースコードも比較的シンプルに保てます。 逆にエラー処理が不適切だと原因の特定に時間がかかったり、異常なデータがどんどん増えてさらに大きなエラーを引き起こしたりします。 ソースコードにも無駄に複雑な処理フローや条件分岐がたくさん出てきて

    Railsアプリケーションにおけるエラー処理(例外処理)の考え方 - Qiita
  • サンプルコードでわかる!Ruby 2.3の主な新機能 - Qiita

    はじめに Ruby 2.3が2015年12月25日にリリースされました。 そこでこの記事ではRuby 2.3の主な新機能を紹介していきます。 対象となるバージョン 以下のとおり、この記事では ruby 2.3.0 を使っています。 参考文献 今回紹介するサンプルコードは下記のサイトにあったコードをベースにしています。 New features in ruby 2.3 - BlockScore Blog ただし、実行結果を確認するために Minitest を使ったり、コードをいくつか変更したりしています。 サンプルコードはGitHubにあります この記事で使ったサンプルコードはGitHubに置いてあります。 興味のある方は手元で動かしてみてください。 JunichiIto/ruby-2.3-sandbox それではここからRuby 2.3の新機能を紹介していきます。 深い階層にあるハッシュの

    サンプルコードでわかる!Ruby 2.3の主な新機能 - Qiita
  • RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita

    RubyRailsにおけるTime, Date, DateTime, TimeWithZoneの違いRubyRails 2021.2.11追記:DateTimeクラスは非推奨なクラスになりました DateTimeクラスは非推奨なクラスとなり、DateTimeクラスではなくTimeクラスを使うよう、公式にアナウンスされました。 参考1 But we consider use of DateTime should be discouraged. - matz (Yukihiro Matsumoto) https://bugs.ruby-lang.org/issues/15712#note-4 参考2 DateTime は deprecated とされているため、 Timeを使うことを推奨します。 https://docs.ruby-lang.org/ja/latest/class/DateT

    RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita
  • Bundler バージョン1.10がリリースされました(翻訳) - Qiita

    はじめに 日、Bundler 1.10.5 がリリースされました。 このバージョンは新機能が追加されただけでなく、最近Rubyの開発現場を混沌とさせていたBUNDLED_WITH問題を改善するための変更も含まれています。 新機能やBUNDLED_WITH問題の改善に関する詳しい情報は以下のブログに書かれています。 Bundler: Version 1.10 released ただし、結構な量があるので英語に詳しい人でないと読み下すのがしんどいかもしれません。 そこでこのブログの内容を日語訳してみることにしました。 翻訳を読んでもらえれば分かると思いますが、 Bundlerの開発チームはみなさんが Bundler 1.10にアップグレードすることを強く推奨しています。 私たちもできるだけ早くBundler 1.10以上(最低でも1.9.10)にアップデートして、Bundler 開発チーム

    Bundler バージョン1.10がリリースされました(翻訳) - Qiita
  • 1