Tatehitoの技術メモ

ソフトウェアエンジニアです。いろいろ書きます。

Rails

Rails7 + React + Tailwindの環境をつくる手順

Rails7からNode.jsが要らなくなるとかそういう話はまだ理解できていないのだけど、とりあえずRails7を使いたくて Rails7 + React + Tailwind の環境を作ってみたので手順をメモしとく。手順といってもDHHの動画の通りにやってみただけ。 youtu.be tailwindと…

【Capistrano】ローカルで precompile するようにしたら assets_roles がデフォルト設定されなくなった

デプロイ負荷軽減のため、ローカルで assets:precompile するように capistrano の設定を変更したら今まで動いていたデプロイタスクが動かなくなった。 動かなくなったタスクはこうなっている。 task :hoge do on roles(fetch(:assets_roles)) do ... end en…

【Rails】gem geocoderを使って郵便番号から市区町村を取得する

環境など Rails 6.1.3 Ruby 2.7.2 geocoder 1.6.7 郵便番号から市区町村を取得する gem geocoderを使うと、郵便番号から住所や経度緯度などを取得することができる。Geocoder.searchは配列を返すので、firstでGeocoder::Result::Googleのインスタンスを取得…

【Rails】simple_formでモデルに存在しないフィールドを扱う方法

modelにattr_accessorを定義することで、モデルにフィールドとして存在しなくてもsimple_formで扱えるようになります。 Model # 'hoge'はmodelにフィールドとして存在しない attr_accessor :hoge View Viewはこちら。チェックボックスを定義する例です。 <%=…

【Rails】チームメンバー管理システムをつくった

実務でゼロからDB設計をしたことがないので、「DB設計筋」をつけるためのトレーニングをしている。具体的に言うと、映画館の発券システムやラーメン屋の注文システムなど、世の中の業務をネタにDB設計を行い、Railsで実装して正しく設計できているかを検証す…

【Rails】後から外部キー制約の付いたカラム(references)を追加する方法

最初にモデルを作成するタイミングで設定しておくのがベストだけど、そうもいかないときは後から設定しなくてはならないのでその手順をメモ。 検証環境 Rails 6.0.0 Ruby 2.6.3 1.マイグレーションファイルを作成する $ rails g migration [migrationファ…

【Rails】Rails new 〜 GitHubへpush 〜 Herokuデプロイまでの手順

Herokuデプロイまでの手順をメモ。 Rails new まずRails newする。 $ rails new rails-sample-project-management-tool _6.0.0_ --skip-test 上記だと以下になる。必要に応じて変更する。 アプリの名前:appname Railsバージョン 6.0.0 Minitestなし Heroku…

【Rails】『omniauth-twitter』でログイン機能を実装する手順

いちいち思い出すのが面倒なので手順を記録しておく。なお『devise』と連携して実装する場合はこの通りでは無い。 確認環境 Rails 6.0.0 Ruby 2.6.3 omniauth 1.9.0 omniauth-twitter 1.4.0 1.TwitterAPIの登録 developer.twitter.com CallBack_URLの設定…

【Rails】開発環境をSQLite、本番環境をPostgreSQLで構築すると後々面倒なことになるかも?

RailsのデフォルトDBはSQLiteです。一方、アプリケーションを簡単にデプロイできることで人気のPaaSであるHerokuのデフォルトDBはPostgreSQLです。 Railsでは環境ごとに異なるDBを利用している場合でも、基本的に問題なく動作します。かの有名なRailsチュー…

【Rails】migrationファイルの生成・記述方法のまとめ

Railsにおけるmigrationを使ったテーブル定義の変更方法は、Qiitaを筆頭に、ちょっとググればすぐ出てきます。大変ありがたいのですが、一向にmigrationファイルの書き方を覚えられないし、毎回ググるのも面倒になってきたので、「自分のブログを見れば全部…

「Rails6でSemanticUIのJavaScriptを読み込む方法(ドロップダウン・アコーディオン等を使いたい!)」という記事をQiitaに投稿しました

Semantic UIはシンプルで洗練されたデザインが魅力的なCSSフレームワークです。以前はBootstrapを利用していましたが、個人的にデザインが好みなのと、部品の種類が多いので、いま開発しているアプリではSemantic UIを利用しています。 さて、Railsではseman…

【Rails】簡単に認証機能がつくれるgem『devise』を試す

はじめに つぎにつくる予定のWebアプリでは、認証(ログイン)機能を実装しようと思っています。そこで認証機能を実装するためのgemで有名な『devise』の最低限の動作確認をしてみました。 環境は以下の通りです Ruby 2.6.3 Rails 6.0.0 devise 4.7.1 (現時…

Qiitaに「Railsアプリケーションで初期データをセットアップする方法あれこれ」という記事を書きました

先日公開した「ポケモンしりとり」では、ポケモンの名前の情報をマスタデータとしてDBに保持させているのですが、現在ポケモンの数は809種類で、とても手作業でデータロードする気は起きません。 ということで、ポケモンの情報が記述されているJSONファイル…

感想『Everyday Rails - RSpecによるRailsテスト入門』

『Everyday Rails - RSpecによるRailsテスト入門』を読みました。 販売形態は電子書籍のみですが、RubyやRailsのバージョンアップに伴って本書の内容も無料でアップデートされています。 RubyとRailsの知識はある程度必要 本書ではRubyやRailsに関する詳細な…

【Rails】bundle install で「--path vendor/bundle」するかしないか問題

今日、こちらのQiita記事を読みました。 qiita.com --path vendor/bundle は、gem のインストール先をプロジェクト固有のローカルに指定するbundle installコマンドのオプションです。 読んだQiita記事は --path vendor/bundleのオプションは、付けたい人が…