→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…
フリーランスのWebエンジニアとして4年間活動してきましたがぼちぼち正社員に戻るのもいいかなと思い、1月末ごろから3月頭にかけて就活してみました。 誰かしらの役に立つかもしれないので面接で聞かれたこと書き残してみます。 転職先を決める際の応募基準 自分の経歴・スキル、フリーランスをやめようと思った理由、応募先を決める際の基準などは以前に別のブログに書きました。 ikeyu0806.hatenablog.com 面接で聞かれたこと 記憶している限り箇条書きで書きます 技術的な質問 あなたが今から担当をお願いしようとしているクラウドサービスを実装する場合、どういった技術やアーキテクチャを選びますか…
2024/03/30分のコミットです。 CHANGELOGへの追加はありませんでした。 Fix typos on Working with JS page rails guideのWorking with JavaScript in Railsの修正です。 RollupやWebpackなどのライブラリ名を正式名称に更新しています。 Suggest inverse_of: nil instead of false activerecord/lib/active_record/reflection.rbの修正です。 deprecateメッセージ内の、pluralized nameに対するinver…
3月1日、2日で行われたRails Girls Tokyo 16thでコーチとして参加してきました。 良い!が詰まりすぎているイベントだったので、記録に残そうと思います。 初めてコーチをしてみたい方の参考にもなったら嬉しいです。 参加したいと思ったきっかけ 私はフィヨルドブートキャンプの卒業生です。エンジニアを目指して学習しているときから Rails Girlsという単語は聞いたことはあったものの、どういうイベント?団体?なのかはよく知らない状態で卒業を迎えました。 そしてエンジニアになってからRails Gilrsにようやく興味を持った私は、2022年のRails Girls Gatheri…
はじめに おはようございます!torihaziです。 現在、やっているecサイト課題で seed というものを使ったので その備忘録です! 読了時間は10しないと思います! 理解は秒です! ではどうぞ! ltg! そもそもseedとは データベースを作成したときに、テストデータを何個か入れたい! てなった時にいくつかドバーッとテストデータを流し込んでくれるものです 使い方 そもそもどこにあるのかというとdb/seeds.rbです。 そこにモデル.createの要領で書けば良いです。 その後に rails db:seedを実行すれば勝手にデータベースに追加してくれます。 ただ1、2個程度追加する…
test-unitでのシステムテストでちょっとハマったのでメモ。 症状 テスト実行時にログイン処理が不安定(ログインできる/できない)という症状が発生。 class BooksTest < ApplicationSystemTestCase setup do @book = books(:one) # ログイン処理 visit root_url fill_in 'Eメール', with: 'alice@example.com' fill_in 'パスワード', with: 'password' click_on 'ログイン' end test 'visiting the index' do v…
こんにちは! 環境が変わりすぎて、ついていくのが大変なみんみんです。 エンジニアとしてのキャリアを歩み始めて早半月、毎日が怒涛のスピードで過ぎていきます。 この前のブログではドッキリじゃないかとか言っていましたが、ドッキリなどではありませんでした(そりゃそうですよね)。 エンジニアとして働き始めて、毎日刺激を受けながら楽しく過ごしています。 3ヶ月目の振り返り 今月の学習時間は103時間でした。 対応したカリキュラムは以下の通りです。 React課題(0/2完了) 業務が始まってからというもの、なかなか課題に向き合うことができていませんでした。 最近夢の中でもコーディングをするようになってしま…
先月の振り返りはこちらから。 ryuta-prog.hatenablog.com 先月の記事は懺悔録でした。マジで読まれたくなくて、こっそり発表したのですが、思いもかけず今までにない反響をいただき、驚きました。(皆様ありがとうございました!) 読まれたくない記事に限って多くの方にキッチリ読んでいただけるというね…(苦笑) さて今月は…タイトルを書きながら、Euforia4ヶ月目ももう終わるのか〜と時の流れの早さに少しだけ焦らされました。個人的に今月は変化の多い月でした。 ただ、それゆえといいますか、最も学習時間の少ない月になってしまいました。 しかも先月の失態を受け、すっかり真面目ちゃんモード…
タイトル通り、勉強のためにRails6でスケジュール管理アプリを作成してCRUD処理を実装している時にlink_to method: :deleteが効かずDELETEではなくGETでリクエストが送られてしまう問題が発生したので対処したことを備忘録的にまとめてみる。とは言っても基本的には同じような問題に当たった先人たちが書き残したものを参考にしてるだけなので真新しい情報はないと思う。というかぶっちゃけ前にも同じことがあってその時も初学者ゆえ解決までに苦労したので自分用のメモとして残しておきたい気持ちの方が大きい。 ちなみに使用してるRailsのバージョンは6.1.3.2……と思ったがrails…
3/29(金) 睡眠時間4時間半 6,825歩 老人の方向けのウェブサイト作りの話で、最初に「老眼率はほぼ100%。配色に気を付けるべき」と書かれていて、噴き出して笑いそうになった。確かにターゲット層によってデザインは本当に変わるよなぁ…。 やったこと 仕事 漫画 ごはん やったこと 仕事 今日は午前中Railsに取り組み、午後はGCP。問題のアンハッピーセットがやってきて頭を抱えたのだが、先輩に質問して知識不足をいくらか解決。私が調査で半日溶かしたものを、1時間の質問タイムで解決出来てしまった…。あの時の調査があったから理解できたということだよ…きっと。 年度末や送別会で徐々に減っていくオフ…
3/28(木) 睡眠時間4時間半 7,279歩 今日は帰宅してすぐに机の高さを変更し、スタンディング状態で昨日の日記を書いてみた。いつものように座ってちょっと休憩(またの名をネットサーフィン)してから…ではなく仕事ペースで早めに取り掛かることが出来たため、結構良い方法なのかもしれない。 やったこと 仕事 Aria5巻 用兵思想入門 ユニコーンオーバーロード ごはん やったこと 仕事 今日は嫌な曇り空の中元気に出社。雑務を片付けつつ、一昨日から私の頭を悩ませているRailsへ取り組んだ。 1日かけても進みは牛歩の如しだったが、定時後にやり方変えたらあっさりクリア。水を得た魚の如く好調に仕事をこな…
生活と仕事 昨晩はオンライン英会話をやってからアメトーークを見ようと思ったんだけど、寝落ちしてしまった。今日はとにかく眠くて、朝起きて飯食ってから今日も二度寝。起きてから仕事をちまちまと進めていた。13時から社内のミーティング。15時から社内のミーティング。その最中にmacOSがディスクが足りないぞって警告を出してきた。詳細は以下の通り。macが突然disk fullになって原因調べていたらDocker Desktopのelectronが大量にログ(280GB)吐いてた。いまはログがそんなでてないので例のsonomeの問題かな... https://t.co/4aWvEY0mWV pic.tw…
未経験からエンジニアへの転職を目指す場合、面接で何を聞かれるのか、どこを見られるのかが気になるかと思います。今回は、未経験者がエンジニア面接で必ず聞かれる頻出質問と、その対策について解説します。 エンジニアを目指す未経験者が面接で聞かれる質問とは なぜ転職をしようと思ったのですか? 【NG回答例】 「前職では人間関係がうまくいっていないからです」 「残業が多くてきついからです」【OK回答例】 「ものづくりをしたくてメーカーに就職しましたが、総務に配属となり、その目標が果たせずにいました。将来異動できる見込みもなく、自分の目指すキャリアとはかけ離れてしまったため転職を決意しました。現在はエンジニ…
フレームは買うしかない。色々調べた。国産のタカチ社とかレールだけだったらもっと安く済ませる方法はあった。しかしブラケットが無いのだ。レール二本を並行に固定する加工をする自信が無かった。結局Tiptop AudioのZ-Railsってのを購入。 海外から個人輸入も考えたが高くなる。素直に正規輸入品を購入。竹下通りのあの店で購入。こんなので1万円。もう少し何とかならんのかね。ま、今回は勉強を兼ねているので良いのだけど。 とりあえず組み立てる。 当たり前だが手持ちのモジュールがしっかり収まる(縦方向のこと)。このピッタリフィット感がドライバーでネジを締めるだけの行為で得られるのは高い金を出した意味が…
2024年3月、17年間続いてきたもぎ関が終わってしまうということで、 もぎ関といえばメンバーがジャニーズ(死語)以外の曲の好みやマイブームだったりを知れる貴重な場としてオタクは聴いてたとこあると思う。 という事で、追える限り書き残してたリクエストまとめここに残しておきます! ⚠️抜けや間違いがあっても責めないでください(むしろそっと教えてください) 当初はジャニーズ縛りがあったのか(?)先輩後輩の曲ばかりのリクエストだったので載せてません。 おそらくジャニーズ以外のアーティストをリクエストした最初は2015年10月の濵田さんから徐々に…だったのでそこからまとめてます。 それ以降先輩後輩のリク…
3/27(水) 睡眠時間6時間45分 1,016歩 班長が囁いてくる…欲望の解放がへたっぴ…これで満足か…? やったこと 仕事 合間 ユニコーンオーバーロード ごはん やったこと 目覚めたら雲一つない快晴。どうやら雨が全て洗い流し、空を青色に塗り直してくれたらしい。朝から洗濯を干して、気持ちよく仕事スタート。 仕事 仕事の方はまったく進まないRailsとの戦い。進捗具合は曇り空。気持ちは小雨。 進捗が無くてSlackに呟くことも無いため、「Ariaという漫画が素敵なんですよ!」と好みをつぶやく始末。すぐさまDMで「Ariaはいいぞ~」という反応が返ってきたことには思わず笑う。「Ariaはアニメ…