Ruby on Rails
Ruby の場合 素の Ruby の場合、該当するメソッドはないため自作する。 数値をいったん文字列にして、正規表現を使ってカンマを加える。 数値.to_s.gsub(/(\d)(?=\d{3}+$)/, '\\1,') 使用例 irb(main)> 500000000.to_s.gsub(/(\d)(?=\d{3}+$)/, '\\1,') => "…
Kaigi on Rails 2020での学びや、感想をつらつらと書いていく。 今回は、メドピア(MedPeer)のtoshimaruさんによる、FactoryBotの正しい使い方について。 動画はこちら。 www.youtube.com なぜFixtureが重要なのか? テストの前提が間違えばその後のテストも…
date_selectだと選びづらいので、date_fieldを使う。 .field = f.label :birthday = f.date_field :birthday
手順 サンプルとして以下のリポジトリをクローンする。 https://github.com/kotakanazawa/rails-starter-kit クローンするとき、ディレクトリに新しい名前をつける。 git@github.com:kotakanazawa/rails-starter-kit.git 新しいディレクトリ名 GitHub上にリ…
問題 Devise のメール認証のシステムスペックを書いていたときに以下のエラーが出た。 ActionView::Template::Error: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true 解決 confi…
やりたいこと 前提 手順 メール認証を有効にする もし途中からメール認証を実装したいなら deviseオプションを追加 メール設定 登録 注意 参考 やりたいこと devise gemを使って、「登録 → 確認のメールがくる → メール内のリンクをクリック → 認証OK」の流…
状況 app/javascript/packs下に新しいJavaScriptファイルを作成したが、読み込まれずエラーがでた。 Webpacker::Manifest::MissingEntryError webpackの開発サーバーも立てていた。 ./bin/webpack-dev-server 解決 Railsとwebpackのサーバーを再起動したらな…
やりたいこと Herokuのスケジューラーを使って、Rails(rake)タスクを定期実行したい。 前提 Herokuにアプリをデプロイ済み タスクを用意済み ローカルで動くことを確認済み 手順 今回は、以下のように「ネームスペース:タスク名」という構成のタスクを用意…
自分用メモ。 DeviseのURLを変更する|KezzyTak|note Rails: deviseのURLをカスタムしたい - Qiita 感謝🙏
rails newをするとデフォルトで./bin/setupスクリプトが生成される。 Rails6 では、そのなかにbin/rails db:prepareコマンドがある。 bin/rails db:prepare これは何をしてくれるのか。 DBが存在しない場合 bin/rails db:prepareがすること DBをつくる schem…
URLやemailの文字列をリンクにしてくれる便利な Rinku gem。 vmg/rinku: Autolinking. Ruby. Yes, that's pretty much it. target _blank属性を付与できるのは公式ドキュメントからわかっていたが、rel="noopener noreferrer"属性もセキュリティのために付与…
GitHubと連携し自動デプロイ Herokuで該当アプリの管理ページへ Deployタブへ Deployment methodでGitHubを選択 GitHub認証をする App connected to Githubで該当するGitHubリポジトリを探す Enable Automatic Deploy をクリック。ブランチはmasterを選択し…
hanmoto の設定 ソニックガーデンの方が作成されたgem。同社で1年以上にわたって運用実績があるとのこと。 参考 Railsでpublic以下の静的ページ(404.htmlといったエラーページ等)をデプロイ時に生成するgemを作った - Qiita aki77/hanmoto: Public pages m…
デフォルトでconfig.force_ssl = trueがコメントアウトされている。これをコメントインして有効にする。 config/environments/production.rb # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force…
手順 app/assets/stylesheets/をapp/javascript/配下に移動する。 $ mv app/assets/stylesheets/ app/javascript/ app/javascript/stylesheetsになっていればOK。 とりあえず今回は app/javascript/stylesheets/application.scss にそのままスタイルを書いて…
リンクにtarget: "_blank"を付与する。 #slimの場合 = link_to "Kota Kanazawa", "https://twitter.com/KanazawaKoh", target: "_blank" これで別タブで開かれる。
#url validates :url, format: /\A#{URI::regexp(%w(http https))}\z/ #email validates :email, format: { with: /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i } email は 、devise やその他の認証系 gem を使っていたらすでにバリデーションが実装されている場合…
スキップさせたいコントローラーで以下を記述。 skip_before_action :authenticate_user!
Railsでrakeタスクを作り、実行する手順 まず、適当なRailsアプリを作る。そしてコマンドラインで以下を実行する。 #適当なタスクを生成する $ rails g task task_sample 生成されたファイルを見るとネームスペースができており、この中にタスクを実装する。…
やりたいこと webmock を使っていて、一度の処理で複数回のAPI通信をするフリをしたい リクエストURIのパラメーターがコードの中で変わるが、返ってくる複数のAPIレスポンスはまとめて処理したい 方法 この方法が最適なのかはわからないが、スタブ登録したも…
問題 ウェブフレームワークに Rails を採用し、Google Search JSON API を使って開発していたとき。 コード側はなにも変えておらず、突然以下のようなエラーが出た。 Failures: 1) Google #rankings_ary Failure/Error: @search_results = searcher.list_cse…
やりたいこと webmock でAPIキーをダミーにして外部API通信するフリをしたい Custom Search JSON API を使った箇所をRailsでテストをしたい 手順 Custom Search JSON API | Programmable Search Engine を使って開発をしていたときのこと。 Google公式が用意…
参考:使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」 - Qiita click_link はa要素を指定する 見た目がボタンでもa要素ならリンク ボタンやリンクを考慮したくないなら、 click_on click_link "編集" click_on "編集"
たとえば、Bookモデルの created_at にインデックスを貼りたい場合。 $ bin/rails g migration add_index_to_books ※ファイル名は適当 マイグレーションファイル。 class AddIndexToBooks < ActiveRecord::Migration[6.0] def change add_index :books, :cre…
ネストしたルートの場合、form_with には複数のモデルオブジェクトを渡すことがある。 = form_with model: [@article, @log], local: true do |f| = form_with(model: [@article, @log], local: true) do |f| ワッショイ💪
最初に、yarn でライブラリをインストールする。 たとえば jquery を入れたい場合。 yarn add jquery config/webpack/environment.js の設定で、jquery の$マークを使えるようにする。 const { environment } = require('@rails/webpacker') const webpack =…
やりたいこと 前提 結論 環境 前準備 ログを表示する ログ作成 ログを編集する ログを削除する ルーティングを整理 削除 フォームをパーシャル化 リポジトリ 感想 関連 やりたいこと 以下のように、ルートが親子関係を持つ場合のフォームの作り方を再現する…
ロールバック怖い。でもやらなければ・・・ ロールバックの手順をメモした。 背景 logsテーブルの id を uuid に変更したい でもすでに logs テーブルは作っちゃった 幸い、ひとつロールバックすればまだ戻せる DB は postgresql を使用 今の DB バージョン…
モデル作成時に設定する手順 $ rails new uuid-test -d postgresql $ cd uuid-test データベース作成。 $ rails db:create モデル作成。 $ rails g model User name:string マイグレーションファイルを修正。 class CreateUsers < ActiveRecord::Migration[6…
rails new <アプリ名> -d postgresql rails new後にDBを変えたい場合 Rails 6 で DB を SQLite3 から PostgreSQL に変更するのはコマンド一発 - Just do IT