→Ruby on Rails RubyによるWebアプリケーションフレームワーク RoR
Agile Web Development with Rails
10分で作るRailsアプリ for Windows http://masuidrive.jp/rails/
Ruby on Rails公式サイトの採用サイト紹介ページ http://wiki.rubyonrails.org/rails/pages/RealWorldUsage
はじめに 前編 後編 技術スタック フロントエンド: バックエンド: データベース: リポジトリ Rails APIを叩いてユーザー情報をDBに保存する Railsのプロジェクトを作成する rails new .gitを削除する モジュール名を変更する データベースを作成しモデルを準備する ルーティングを設定する コントローラーを準備する フロントエンドとバックエンドの連携を設定する rack-cors axios Next.js側からRails APIを叩き、ユーザー情報をDBに保存する ユーザー情報を削除するコンポーネントも用意しておく indexページに、作成したコンポーネントを配置する…
みなさんはRailsの開発にて、サービスクラス(ServiceObject)を使っているでしょうか。 モデルやコントローラーがファットになるのを防ぐために導入される設計方法で、ドメイン知識におけるサービス(eg: 商品の購入処理)の一連の処理をまとめたクラスを作成することで、可用性が高くテストがしやすいコードを書くことが可能です。 techracho.bpsinc.jp 特にRailsではActiveRecordの便利さゆえにコントローラーやモデルに処理をゴリゴリと書いてしまいがち。しかし、何も考えずにサービスクラスを無秩序に作ってしまうと逆に保守性が悪い状態になってしまいます。 自分が書いた…
はじめに 前編 後編 技術スタック フロントエンド: バックエンド: データベース: リポジトリ 下準備 Google APIにアクセスできるように準備する 認証ライブラリのNextAuth.jsを使ってGoogleログイン機能を実装する Next.jsプロジェクトを作成する 必要なnpmをインストールする API routeの設定を行う .env.localファイルを生成しGoogle認証のために必要な環境変数を設定する Session Providerの設定 ログイン機能を作成する 毎回ログインする度にユーザーに再認証を要求する ログアウト機能を作成する indexページを用意して、ログイ…
少しだけ注意する点がありますが、それ以外はいつもどおりです。 結論 必要な gem aws-sdk nokogiri nokogiri でなくとも ox や oga や libxml や rexml でもいいです nokogiri を選んだ理由は、Rails の場合は明示的に入れなくてよく、馴染み深いから、というだけで深い理由はありません コード require 'aws-sdk' s3_client = Aws::S3::Client.new( region: 'ap-northeast-1', access_key_id: 'YOUR_ACCESS_KEY_ID', secret_acce…
Railsでトランザクションを扱いたい時はActiveRecordに実装されたtransactionメソッドを呼び出します。 ActiveRecord::Base::transaction do : end 今までRailsでトランザクションのブロックを宣言した時は、他のトランザクションからデータの取得、更新は出来ないと思っていましたが、先日、勘違いであることに気づきました。更新はトランザクションの待機によってすぐには実行されませんが、データの取得は可能です。取得もさせたくないのであれば排他制御を行い明示的にロックの宣言をする必要があります。 トランザクションのブロックを宣言しただけでは、他の…
はじめに privateメソッドとは? Rubyのprivateは特殊? 調査 検証する環境 検証した内容 実験及び結果 1.コードは上から下へと実行されるは嘘? 2.クラス内で定義されたメソッドはどの順番で実行されるのか? a.クラスの情報が最初に実行されるのか? b.privateメソッドだけが下から呼び出せるのか? c.クラスの中のコードもはじめに上から実行しているのか? d.クラス内のメソッドが認識されるタイミングは? ⅰ.クラス内のメソッドは上から実行された時に本当に認識されていないのか? ⅱ.newメソッドがクラス内のメソッドを認識したタイミングは? 3.定義したメソッドのさらに中…
オプションに困るのでメモ rails 7.0.4.3 $ rails -v Rails 7.0.4.3 $ rails new -h Usage: rails new APP_PATH [options] Options: [--skip-namespace], [--no-skip-namespace] # Skip namespace (affects only isolated engines) [--skip-collision-check], [--no-skip-collision-check] # Skip collision check -r, [--ruby=PATH] # …
Railsではマイグレーションファイルを作成してマイグレートを実行することで、テーブルが作成されます。 非常に便利で手軽にテーブルの定義・作成ができるのですが、マイグレートされた結果、どのような型が選択されるのかが隠蔽化されるという問題があると思っています。一例として、t.stringとt.textでそれぞれカラムを定義した場合に実際にテーブルで採用される型はどうなるでしょうか。 class CreateUserTable < ActiveRecord::Migration[7.0] def change create_table :users do |t| t.string :string_…
はじめまして! エージェンシー事業でリードアプリケーションエンジニアをしている福堀です。 担当サービスでは数十の広告媒体のレポートデータをRailsのResqueを利用したバッチ処理でAPI等から取得しています。 このサービスは立ち上げから7年以上経過しており、私自身も携わってから4年程経ちましたがその間に様々な苦労や工夫したことがありました。 その中から今回はGoogle AdsおよびYahoo!広告のAPIの仕様・実装例についてとエラーが頻発したAPIに対してどのように対応したかを紹介します。 Google Ads GemとAPIバージョン APIの実行について 例外処理について Yaho…
はじめに イタンジ株式会社の開発の越智です。現在、「物件管理くん」というサービスの開発を担当しています。 本記事ではRailsアプリケーションのN+1問題を解消する方法として挙げられる、ActiveRecordのメソッドについてまとめます。 N+1問題とは? N+1問題とは、ループ処理の中で都度 SQL を発行してしまい、大量の SQL が発行されてパフォーマンスが低下してしまう問題のことです。 これだけだと抽象的すぎるので、具体例を示します。 以下のようなテーブルを考え、companiesテーブル:storesテーブル = 1:多の関係とします。 今回使用するテーブルのER図 以下は、企業(…
仕事で実に5年ぶりにRubyを触ることになったので、この5年でどんなアップデートがあったのかをキャッチアップついでにまとめてみようと思う。 TL,DR 2.6.0から最新の3.2.0までリリースノートを読んでみた 2.xは2.7.xで終わり、3系になった JITを使った高速化や型の静的解析ができるようになった 3系ではキーワード引数と普通の引数が分けられたのが大きなBreaking change パターンマッチやハッシュの値の省略記法など他の言語に実装されている機能が取り入れられた (adsbygoogle = window.adsbygoogle || []).push({}); Rubyの…
2023/03/29分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 railties/CHANGELOG.md bin/rails --help will now list only framework and plugin commands. activerecord/CHANGELOG.md Limit max length of auto generated index names actionpack/CHANGELOG.md Add without as an alias of except on ActiveController::Parameters. …
エンジニア・プログラマーの学習に約立つコンテンツのセール情報を集めました 1位 現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル ¥27,800 → ¥1,900 93%OFF!! ⭐ ⭐ ⭐ ⭐ (20,123件) 現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です! 2位 【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 - ¥15,800 → ¥1,800 …
今週の振り返り 先週の週報を忘れていました… 先週&今週はRails系のプラクティスを進め、合間にテストとオブジェクト指向のプラクティスの書籍を進める感じでした。 レビューと提出物ラッシュでなかなか忙しかったです。 オブジェクト指向のプラクティスではOPPの歴史と発展の経緯を知ることでより理解が深まりました。 今週の成果 進めたプラクティス 日報の言及機能を作る テスト技法 TDD の基本を理解する test-unit の基本を理解する Railsでテストを書く オブジェクト指向プログラミング 学習時間 累計:797時間 目標達成状況 ❌週報を継続する ✅毎日学習を継続する ✅スポーツジムで運…
はじめに 初めまして、株式会社オールアバウトでWeb開発をしている@r_chibaです。 2022年度から新卒のエンジニアとして働きはじめて早1年経ちました。今回は業務をしていく1年間の中で、苦労したことや学んだことや、日々の業務をどのように行っているかなど、色々とつづっていければと思います。 自己紹介 小学~高校までは愛知県で過ごし、大学からは長野の大学で学生生活を過ごしていました。 大学の専攻は理系分野ではありましたが、Webエンジニアとして使用していくプログラミングに関しての授業などはあまりなく、 大学2年時にC言語の授業を受けたぐらいでした。その時の授業でもポインタなどの説明を受けて、…
第2回です。 設定はこれだけですね。特に詰まることもないかと。 Flutter アプリに Firebase を追加すると思ったら詰まりました。 `brew upgrade cocoapods`したら直りました。 main.dartのmainメソッドを編集 void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); await FirebaseMessaging.ins…
CTO 藤村がホストするPodcast、論より動くもの.fmの第19回を公開しました。今回は藤村が3月9日に登壇した『いかにして文系新卒エンジニアが “基礎” を大事にするCTOになったのか - CTO名鑑 vol.2』でいただいた質問に答えました。 論より動くもの.fmはSpotifyとApple Podcastで配信しています。フォローしていただくと、新エピソード公開時には自動で配信されますので、ぜひフォローしてください。 テキストで読みたい方は下記からご覧ください。 Q. プログラミングの知識が追いついていないと感じる時、何を心がけるといいですか?A. 勉強して手を動かす以外解決策はない…
昨日の続きです。 RailsのTurboでAjaxで要素を削除したときにCSSアニメーションさせる方法2(Stimlus化) 画像の登録もTurbo/Stimulusで実施してなかったので修正してみます。 やってみる css fade-in用を追加。 .fade-in { animation: fade-in .4s linear; opacity: 1; } .fade-out { animation: fade-out .4s linear; opacity: 0; } @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; }…
エンジニア・プログラマーの学習に約立つコンテンツのセール情報を集めました 1位 現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル ¥27,800 → ¥1,900 93%OFF!! ⭐ ⭐ ⭐ ⭐ (20,115件) 現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です! 2位 【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 - ¥15,800 → ¥1,800 …
2023/03/28分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 activestorage/CHANGELOG.md Remove mini_mime usage in favour of marcel Safe for direct upload on Libraries or Frameworks activerecord/CHANGELOG.md Introduce a more stable and optimized Marshal serializer for Active Record models Update active_record_migr…
何年も前に社内向けにシンプルなアプリをRailsで作っていたのだけれど、長いことメンテナンスできずにいた。 Rubyのバージョンも古いし、Railsのバージョンも古かったので、バージョンアップをしないとなぁと思っていたのだけれど、やったところでまた数年後に同じ思いをすることになりそうだなぁ…と思ったので、もっとバージョンアップのしやすいSinatraに書き換えることにした。 実はSinatraを試したことくらいはあったけれど、ちゃんとデプロイまでしたことはなかったので、よい経験になった。 作ったもの シンプルなWebAPIを作った。JSONを返すだけ。 使ったgem sinatra 言わずもが…
対象者 railsでアプリケーション制作初心者. 目次 データベースにデータを挿入する全体像 seed.rbの書き方. データベースにデータを挿入する全体像 ①db/seed.rbファイルを開く. ②seed.rbファイル内にデータベースに入れたいデータを記述. ③rails db:seedコマンドでデータベースにデータを実際に挿入する。 seed.rbの書き方. 今回は登録したいデータが1つの場合か複数の場合のseedの書き方の紹介です. データが1つ テーブル名(単数形).create!( カラム名: 'データ', ) 例えば User.create!( email: 'aiueo@tes…
VRoid部でエンジニアとしてアルバイトをしているxxarupakaxx(@arupaka03254)です。 2月末にVRoid SDK v0.1.3がリリースされましたね!!🎉 そのリリースには新しい機能が追加されました。デバイスフローという認可フローの追加です。 ちなみに、デバイスフローとはスマートテレビやVRのようなブラウザ操作が難しいデバイスに対する認可の仕方のことです。 VRoid SDKを用いてVRアプリケーションを作成するときに今まではVR内でブラウザを開き、ログインするためにIDとpasswordを入力して、、、といったVRでは面倒でユーザー体験の悪いものがデバイスフローの実装…
こちらの記事おすすめ! note.com railsの命名規則わかってた方がマジで便利!!例えばUserモデルのテーブルは複数形になるので、usersなんですね〜 userテーブルないよ!!!って思ったら、usersテーブルなんだね。 恥ずかし(≧∀≦)