→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
私自身、立ち上げ期のSaaSサービス・Webサービスの開発、個人開発を通じて学んだ立ち上げ期に役に立つサービスをまとめます。 そもそも、なぜ立ち上げ期で役に立つのか? サービス立ち上げ時は、とにかく爆速でコンテンツの充実・プロダクトの中身を作っていかなければいけません。 そのため、本質ではないところについては、外部サービスを頼る・参考にする事が重要になります。 認証 OAuthを推奨します。 自前でアカウント周りの機能を作成することは控えましょう。 なぜなら、、、 個人開発系のアプリの場合、見ず知らずのアプリでアカウント登録を行うのは心理的な障壁がある 商用、toB系のサービスの場合、個人情報…
paranoiaを使っているモデルでユニーク制約のバリデーションを設定すると、論理削除済みのレコードは制約の対象から外れます。(論理削除済みのアイテムとは重複が許される) その仕組みを理解するために少しgemのコードを読んで気づきがあったので記載します。 Rails 7.0.8 paranoia 2.6.3 きっかけと概要 paranoiaを使っているモデルでバリデーションのユニーク制約をかけた際に、以下のことを知りました。 paranoiaで論理削除しているとユニーク制約の対象外になります class Book < ApplicationRecord validates :title, un…
Formオブジェクトパターンとは1つのフォーム送信で複数のモデルを操作した場合や、テーブルに保存しない情報にバリデーションを設定したい場合につかいます! つまり、コントローラーが複数のモデルに指示出すこともできるけどすごく大変だから間(Formオブジェクト)に入ってもらおうということです! 例えるなら、コントローラーが王様でFormオブジェクトが執事みたいな感じです!王様は執事に指示するだけで、他の人たちに指示する必要がなくなるということです!そう思ったら執事が必要じゃないですか?(笑) それではFormオブジェクトパターンの導入を説明していきます! ①モデルにてFormオブジェクトのファイル…
データベースとはデータを保管してくれる モデルとはデータベースのデータを情報を取得や受け渡すところ 例えるならデータベースは本棚でモデルは図書室の職員さんです。 そして本棚の中には様々な本があります。特定の本を職員さんが探すのは大変だと思いませんか?探す苦労を解消するために本の種類や作者で分けておくラベルがあれば探す苦労がなくなると思いませんか?それがテーブルになります。テーブルにはカラムとレコードがあります。カラムは本の作者やジャンルなど大まかな枠組みでレコードは作者、ジャンル、タイトルなど1冊の本の情報をまとめたものです。 それではデータベースとモデルの作成の流れを説明していきます! ① …
はじめに 今回は現場で使える Ruby on Rails 5速習実践ガイドを読了したので、それについての感想を記録していきます。 チェリー本で学んだ際には、文法やメソッド、クラスであったりその他諸々、決まっている事を学ぶところが多かったように思います。 それに対し、本書ではもちろんそういった面の学習もあるのですが、課題に対するテクニックや考え方などの必ずしも決まりきっていない部分の学習があったので同じページ数くらいでしたがより長い時間が掛かったように感じました。 ちなみに、読む前の知識レベルとしては、 Progateのレッスンを修了 Railsガイドのチュートリアル を行ったくらいのものです。…
ActiveRecordとはモデルがテーブル操作するとき使うメソッドです。 テーブルの情報を保存したり取得するために使います。 例えるならテレビとリモコンの関係です。リモコンによって番組の予約したり、録画していた番組を再生するみたいな感じです! たくさんあるActiveRecordから代表な例を紹介します! allメソッド テーブルのすべてのテータを取得する findメソッド テーブルの一部のデータだけを取得する newメソッド テーブルのデータをを生成する saveメソッド デーブルのデータを保存する
複雑なクエリを書きたい時、 SQLを直書きできる find_by_sqlメソッドを使うのだが、配列の引数を渡すケースがあったときに、その配列が空だと正常にデータを取得できなくなるよう。 例えば、こんな感じで、1みたいに配列に値があればうまく動作するのだが、2のように空だとうまくいかないっぽい。 # 1. arg_user_ids = [1,2,3] # 2. arg_user_ids = [] query = ( <<~SQL SELECT users.* FROM users INNER JOIN posts ON posts.user_id = users.id WHERE posts.u…
3月1日、2日に第16回 Rails Girls Tokyoにスタッフとして参加させていただきました! 参加した感想を記録として書いていきます。 参加する上での自分の目標とその結果 スタッフとしてやったこと ワークショップについて スポンサーLT&コーチLT 全体を通しての感想 おまけ 参加する上での自分の目標とその結果 みなさんに挨拶をする 当たり前のことなのですが… 普段私が学習しているフィヨルドブートキャンプ(以下FBC)のメンターさん・アドバイザーさんがコーチとして参加されていたので、オフラインでお会いする機会は私にはなかなかなかったので認知してもらおう!という気持ちでご挨拶しました。…
こんにちは。サーバーグループ エンジニアの山田です。 今回はRails7.0からRails7.1へのアップグレードを行なった際に、ActiveRecord Encryptionで発生したエラーとその対応について紹介します。 同様のエラーに遭遇した方の参考になれば幸いです。 ActiveRecord Encryptionによる属性の暗号化 決定論的暗号化と非決定論的暗号化 発生した事象 エラーの原因 SHA256に変わった経緯 対応方法 hash_digest_class support_sha1_for_non_deterministic_encryption 採用した方法 まとめ Activ…
やりたいこと railsアプリケーションにて、deviseを用いた認証機能を制限したい。 例) サインアップ機能の廃止など... 導入方法は下記記事を参照 locomocosan.hatenablog.com 機能を制限する方法 deviseの標準機能を制限するには、app/models/user.rbのファイルを変更必要がある。 class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trac…
2024/03/18分のコミットです。 CHANGELOGへの追加はありませんでした。 Merge pull request #51328 from fatkodima/remove-useless-lines-from-doc rails guideのConfiguring Rails Applicationsの修正です。 Connection PreferenceセクションにあるActiveRecord::Base.configurationsをputsした場合のexampleを削除しています。特に意味のないexampleだった為。
3/15-3/16で練馬で開催されたYa8 2024 - ヤパチー 令和六年最新版(仮)に参加してきたので感想ブログ書きます。 全体を通して テックなんだけどテックだけじゃない、コミュニティの良さが全方位で感じれたイベントでした。 Perl界隈の方々と交流始めたのが去年の年末くらいからなんですが、YAPCもYa8もすごく好き。 エンジニアとして技術交流できるのも楽しいし、趣味の話とかパーソナルな部分のトークを聴けるのもの楽しいし、2日間のそれぞれでテーマが決まってて両面トラックで楽しめました! 登壇したこと speakerdeck.com 「孤独のCTOグルメという やや奇抜な企画をやった目的…
以前こんなブログを書きました。 blog.m-ito27.com 「勉強にはなった部分がたくさんあるが、意味が分からない点も多かったのでもう少し力をつけてまた読みたい」といったことを書きました。 ということで、約1年半経ったのでリベンジで読んでみました。 すると、今度はすんなり理解できる部分が多くなっていて、少しは成長できているな、と嬉しくなりました。 なるほどと思った点と感想を簡単にまとめました。 第1章 オブジェクト指向設計 世界をあらかじめ決められた手続きの集まりと考えるのではなく、オブジェクト間で受け渡されるメッセージの連続としてモデル化する。 読書メモ: Aが何かをして、Bがこうなっ…
今週の振り返り 目標と成果 目標 成果 反省・感想 Reactの「インタラクティビティの追加」を終わらせる ○ できたけど…😓 Omotesando.rb#95の参加記録記事を投稿する ○ 👍 やったこと Reactを学ぶ state難しい…もっと進めたかった Omotesando.rb#95の参加記録記事投稿 Omotesando.rb#95に参加しました! - motohiLog 自分もなにかしらを還元できるように、学習をすすめたい…! ぱRails輪読会参加 ActiveModel、フォームオブジェクト、プレゼンター、Concern リーダブルコード輪読会 タスクの分割、やりたいことの言…
2024.Q1 「ドイツ部」対戦ログ リザルト プレイ日記 グレートウエスタントレイル(第2版)
こんにちは、Watanabeです。 ニフティ株式会社さんが主催する勉強会「超入門 ここから始める開発環境」に参加しました! 「超入門」とタイトルに書かれてるくらいだったので、意を決して初めてオフライン枠で勉強会に参加してみたのですが、内容は追いついていけましたし、フレンドリーな雰囲気があったのでとても良かったです。 会場の様子(もっと全体を写せばよかった) 以下、LTごとの感想です。 メモを見つつ感想を書いていますが、実際のところはYouTubeで公開されているのでご覧になるのがおすすめです。 dotfilesをつくるよ dotfilesに関してはひまじんプログラマーの週末エンジニアリングレッ…
ruby on railsでログアウト機能実装のエラー 見出しの通りrailsでwebアプリを実装中にログアウトボタンを押すとエラー画面が出てしまう問題に直面しました。 最初の投稿なので拙い点が多くあると思いますが今後のために残しておきます。 ・実装環境 vs code windows 11 ruby on rails ubuntu devise def show if params[:q]&.dig(:product_name) squished_keywords =params[:q][:product_name].squish params[:q][:product_name_cont_…
Ruby on RailsのAntiveRecordみたいなORMを、日常的な用途でも使いたいと思い、ChatGPTに聞いてみました。 Sequelが良さそう。 Ruby on RailsのActiveRecordって、Ruby on Railsの環境以外でも使えるのですか? Rubyで使えるORMライブラリで定番のものは他にもありますか? それぞれのライブラリの歴史を教えてください。 日常的な用途でORMを用いる場合、おすすめなのはどれですか? 利用者数や入手可能なドキュメントの豊富さで比較するとどうなりますか? Sinatraで使うなら、Sequelが良さそうですね。 Ruby on Ra…
2024/03/16分のコミットです。 CHANGELOGへの追加はありませんでした。 Merge pull request #51333 from rails/ar-guide-edits rails guideのActive Record Basicsの修正です。 guide全体について、フォーマットや言い回しの修正を行っています。 Merge pull request #51309 from adityapandit17/update-pull-request-template .github/pull_request_template.mdの修正です。 グラマーの修正を行っています。 …
自分とカフェとの関わり方は、スタバやドトールなどチェーン系のお店でPC作業をするのがメインだ。たまにローカルな個人経営のカフェに行きたいという気持ちもあり、まさにそんな気分だったところにいい感じのカフェを発見したので、散歩がてら行ってみた。 aratacoffee.jp マンションの1階に構えるそのお店は、ガチめの自家焙煎珈琲店(コーヒーじゃなくて珈琲)。豆も販売してたりするタイプのお店。たぶんとっしー*1とか連れてきたら喜ぶと思う。自分はあまりコーヒー詳しくないので雰囲気だけ楽しませてもらう。 ちょうど読んでてラストスパートだった本があったので、1時間半ほど滞在しつつ読了。別に本くらい家で読…
こんにちは! 今回はスッキリわかるSQL入門を読んだ感想をまとめます。 スッキリわかるSQL入門 第3版 ドリル256問付き! (スッキリわかる入門シリーズ)作者:中山 清喬,飯田 理恵子インプレスAmazon 良かったところ 最初の1冊に最適 図解が豊富 キャラクターと一緒に学ぶので敷居が低い 簡単な内容から説明するように順番が工夫されている SQLを使ってみるところから、表計算ソフトとの違い、データベース設計まで基礎知識を幅広く扱っている 章ごとに練習問題があり復習しやすい 講義、まとめ、章の内容の練習問題という構成なので復習しやすい 解答も問題の次のページについているので確認しやすい ポ…
Ruby on Railsのsystem specで画面ショットを取りつつmasterとの画像比較してVRT的なことできないかなーと思っていたのですが、Capybaraのpage.save_screenshotとreg-cliを使うと実現できそうだったのでメモ📝 ちなみにPlaywrightでは以下の通りtoHaveScreenshotを使うことで、今回試したような簡単にVRTを実施できます。 madogiwa0124.hatenablog.com ※playwright-ruby-clinetを直接使えば出来るかなと思ったけどtoHaveScreenshotには現時点では対応していなさそうだ…
開発中のソースコードは、コンテナ内のファイルシステムに置くのではなく、ホストシステムのディレクトリで行うのが通常だそうです。 開発中は、「ボリュームマウンティング」という方法を用いて、そのファイルをコンテナ内の特定ディレクトリに反映させて実行させることになるそうです。 ウェブサーバーのポートも同様に、「ポートフォワーディング」という手法で、ホストシステムのポートをコンテナのポートに結びつけて実行するとのこと。 例: docker run -p 4567:4567 -v $(pwd):/app sinatra-app コンテナは、ホストシステムとは異なる「島」のようなものということのようです。 …
確定申告に時間を取られて3月も後半になってしまいましたが、2024年2月の振り返りです。 目次 【おでかけ】越後湯沢(トスラブ湯沢) 子どもたち👧👶 東京ドームシティ 雛人形🎎 雅叙園ビュッフェ その他
2024/03/15分のコミットです。 CHANGELOGへの追加はありませんでした。 Add some description for MariaDB in ActiveRecord documentation rails guideの修正です。 サポートしているRDBMSについて説明している箇所に、MariaDBについての説明を追加しています。 Add #weeks_since in active_support_core_extensions.md guide [ci skip] rails guideのActive Support Core Extensionsの修正です。 DateA…