記事

Railsで新規プロジェクトを始める時の入門書

#tech

環境

Rails version: 7.1.3.2
Ruby version: ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) arm64-darwin21
DB: MongoDB
infra: Cloud Run

$rails new <プロジェクト名>

  • このコマンドだけでDocker周りもいい感じにしてくれる
    • もう少しRailsやRuby周りに詳しくなったら、マニュアルで環境を作ってみたい

これでいい

rubocopで怒られる

  • command /Users/kinjyoshotaro/.rbenv/shims/rubocop returns empty output! please check configuration.
    • やったこと
      • gem install rubocop-rails

gemにmongoidを追加したら、怒られた
bundle installをした

  • Bundler could not find compatible versions for gem "activemodel":
      In snapshot (Gemfile.lock):
        activemodel (= 7.1.3.3)
    
      In Gemfile:
        mongoid (~> 7.0) was resolved to 7.0.4, which depends on
          activemodel (< 6.0.0, >= 5.1)
    
        rails (~> 7.1.3, >= 7.1.3.2) was resolved to 7.1.3.3, which depends on
          activemodel (= 7.1.3.3)
    
    Running `bundle update` will rebuild your snapshot from scratch, using only
    the gems in your Gemfile, which may resolve the conflict.

仮説

  • active Recordがなんか影響している?
    • active Recordとは?
  • このエラーは、mongoidの依存関係とrailsのバージョンが競合しているために発生しています。mongoidはactivemodelのバージョンが6未満である必要がありますが、railsはactivemodelのバージョン7.1.3.3を必要としています。
  • この問題を解決するためのいくつかのアプローチがあります:
  • 1. **Railsのバージョンをダウングレードする**:
  • railsのバージョンをmongoidがサポートしているバージョンに変更します。これは一般的にお勧めしませんが、プロジェクトの要件に合う場合は考慮できます。
  • 2. **Mongoidのバージョンをアップグレードする**:
  • 最新のmongoidがrails 7と互換性があるか確認し、必要に応じてmongoidのバージョンを更新します。
  • ### Mongoidのバージョンアップデート
  • 最新のmongoidバージョンを調べてみましょう。mongoidの最新バージョンは、mongoidの公式GitHubリポジトリやRubygems.orgで確認できます。
  • `ruby
  • gem 'mongoid', '~> 7.3' # または、最新バージョンを指定
  • `
  • これをGemfileに追加し、bundle updateを実行してみてください。
  • ### バージョン確認と修正
  • もし上記の方法で解決しない場合、以下の手順で依存関係のバージョンを確認し、調整することもできます:
  • 1. **Gemfile.lockを削除**:
  • `bash
  • rm Gemfile.lock
  • `
  • 2. **Gemfileを更新**:
  • `ruby
  • source 'https://rubygems.org'
  • gem 'rails', '~> 7.1.3'
  • gem 'mongoid', '~> 7.3' # もしくは最新バージョン
  • `
  • 3. **依存関係を再インストール**:
  • `bash
  • bundle install
  • `
  • これにより、railsとmongoidの互換性のあるバージョンがインストールされるはずです。
  • もし依然として問題が解決しない場合は、mongoidの公式ドキュメントやGitHubリポジトリのissueページで他の解決方法を探すのも有効です。
  • Ruby on Railsのversionか、mongoidのversionが少しおかしいのかも?

gem mongoを使うようにした

  • Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
    
    current directory:
    /Users/kinjyoshotaro/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/psych-5.1.2/ext/psych
    /Users/kinjyoshotaro/.rbenv/versions/3.1.0/bin/ruby -I
    /Users/kinjyoshotaro/.rbenv/versions/3.1.0/lib/ruby/3.1.0 -r ./siteconf20240523-78565-uklg7b.rb
    extconf.rb
  • bundle installをしたらこんなエラーが出た

bundle installはnpm installと同じ

開発サーバーの起動コマンドは?

  • rails server | rails s

Dockerの環境

  • $rails new <プロジェクト名>
  • これでいい

© 2026 Shotaro Kinjo