mikoto2000 / ya-rails-template

Rails7 標準の scaffold に、いくつか機能を追加したテンプレートです。
MIT License
0 stars 0 forks source link

ya rails template

Rails7 標準の scaffold に、以下機能を追加したテンプレートです。

ya-rails-template

開発環境

起動

VSCode Container 拡張機能を使うか、 Docker Compose で開発環境を立ち上げます。 (VSCode Container 拡張機能による起動の説明は省略)

※ 本リポジトリの docker-compose ファイルでは、 PostgreSQL を利用する設定となっています。必要に応じて変更してください。

docker compose up

開発コンテナへの接続

以下コマンドで、 ruby, nodejs, yarn の環境構築済みのコンテナに入れます。

docker compose exec app bash

アプリケーション作成手順

Rails プロジェクトの作成

rails new コマンドで、プロジェクトを生成します。

rails new app --css=bootstrap -m ./apptemplate.rb -d postgresql

DB 設定更新

開発で使用するデータベースの設定は、 config/database.yml 内の development セクション内の項目に記載します。 必要に応じて、 production など、別環境の設定も行ってください。

development:
  <<: *default
  host: postgres
  database: public
  username: admin
  password: password

Scaffold 実行

./bin/rails generate scaffold Role name:string
./bin/rails generate scaffold Account name:string role:belongs_to expiration_date:date

必要に応じて Model を編集

ひとつのテーブルに対して、複数カラムで foreign key を設定している場合、モデルの belongs_to を適切に設定してください。

例: app/models/present_history.rb を編集

class PresentHistory < ApplicationRecord
  def self.ransackable_attributes(auth_object = nil)
    ["id", "name", "from_account_id", "to_account_id"]
  end

  belongs_to :from_account, class_name: 'Account' # この行の、 `, class_name: 'Account' を追加
  belongs_to :to_account, class_name: 'Account' # この行の、 `, class_name: 'Account' を追加
end

DB マイグレーション

マイグレーションファイルの修正

制約があれば、 db/migrate/*_create_* のファイルを修正してください。

マイグレーション実行

以下コマンドで、マイグレーションを実行してください。

rails db:migrate

必要に応じて辞書ファイルを編集

config/locales に、各言語毎の辞書ファイルが格納されているので、必要に応じて文字列の修正をしてください。

モデル名や、モデルの属性名を日本語化する場合、 config/locales/ja.yml へ、以下のように activerecord/models, activerecord/attributes 以下に文字列の定義を追加してください。

例: config/locales/ja.yml を編集

...(snip)
ja:
  ...(snip)
  activerecord:
    models:
      account: アカウント
    attributes:
      account:
        name: 名前
        role_id: 権限
        expiration_date: 期限
        created_at: 作成日
        updated_at: 更新日

動作確認

dev server の起動

以下コマンドで、開発用にサーバーを起動します。

BINDING=0.0.0.0 bin/dev

ブラウザでの確認

Scaffold の例の通り、Item と Account を作成したとして話を進めます。

http://localhost:3000/accounts にアクセスすると、次の図のように、検索フォーム付きの一覧画面が表示されます。 ya-rails-template

気に入らない挙動があれば、生成されたコードを修正してください。

License

Copyright (C) 2023 mikoto2000

This software is released under the MIT License, see LICENSE

このソフトウェアは MIT ライセンスの下で公開されています。 LICENSE を参照してください。

Author

mikoto2000 mikoto2000@gmail.com

TODO

参考資料(ググったモノたち)