今や電子メールを持っていて当たり前の時代で、メールを送らないサービスはほとんどありません。 Railsでは、ActionMailerというメールを送る機能が標準で備わっています。 今回はActionMailerを使ったメール送信のテストについて書き方をまとめていきます。 ちなみに、ActionMailerでは同期処理で送るパターンと非同期処理で送るパターンの2種類があるので、2種
Railsではlink_toヘルパーにdata: {confirm: 'よろしいですか?'}のように書いたり、HTMLで<a data-confirm="よろしいですか?">確認</a>のようにdata-confirmと、リンクをクリックしたときに確認のアラートが出るようにできます。 通常のhrefで指定されたリンクの場合は、confirmでOKを押すと、リンク先に遷移します。た
システムを構築してると、幾つかのステータスを持つことがあります。例えば、商品についてのモデルProductのstatusとして、「発売予定」「発売中」「絶版」「再販未定」の4つのステータスを持っているとします。 これらを扱うModelの良い書き方を紹介します。 ステータスを数値を使って表現した時の問題点 それぞれのステータスを10, 20, 30, 40という数値で管理しようと思います
サービスを作っていると、マスター管理された文字列を利用してパスを切り分けたいことがよくあります。たとえば、顧客ごとに、customer_a/awesome/path,customer_b/awesome/pathのようなイメージです。 この記事ではRailsでこのように動的にパスを切り替えるルーティングの記述方法について、解説しています。 問題点 マスター管理された文字列でシステ
経緯 Webアプリケーションでは往々にして管理者向け画面とユーザー向けの画面に大きく別れることがよくあります。 ただ、「両方とも、productを扱うから!」と管理者画面もユーザー画面もapp/controllers/products_controller.rbに記述してしまうと、ファイルが大きくなり、管理しづらくなってしまいます。 また、公開側のURLは/productsのよう
後輩から以下のようなLINEが来ました。 「適切」という言葉が曖昧ですが、以下のように解釈しました。 材料の本数が最小であること。最後、余る棒の長さが最大であること。 平易な言葉でいうと、なるべく少ない材料で、使いまわせるように、余りは出来る限り長く取ろうという意味です。 コード Rubyで総当りのプログラムを作りました。後述の通り、計算量は大きいですが、ひと
Twitterをよく見ると、ツイートした時間の表示は○○前とか約○○時間前のように、アバウトな時間表示になっています。 Ruby on Railsではtime_ago_in_wordsメソッドを使うことで簡単に実装することができます。ここではこのtime_ago_in_wordsの使い方についてご紹介します。 ヘルパーに追加 タグで囲んだり、クラスをつけたり、統一する必要が出るこ
Ruby on Railsは数多くのサービスに利用されていて、Web開発者であれば、一度は名前を耳にしたことがあるであろう、スタンダードなフレームワークになっています。 今回は、初学者の方のために、Docker等は使わず、Mac上に直接開発環境を構築する方法を紹介します。 開発環境はrubyはrbenvを使ってインストールしていきます。 rbenvのインストール(最初だけ)
音楽系メディアアートを作るとき、よく音階をmidiノートナンバーに置き換えて扱うのですが、音階をmidiノートナンバーに変えるのがいちいち考えて打つのは面倒なので、変換するプログラムを練習がてらにRubyで書きました。 コード p 'e.g.) c d e- e g g+ a' line = gets notes = line.split(" ");