#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.rbbundle installをしたらこんなエラーが出た- 似たような記事
- https://qiita.com/kazu1212-star/items/80f2fd29401824e52b6b
- この記事には、詳細までエラーの原因が書かれている
- 解決方法
brew install libyamlgem install psych
bundle installはnpm installと同じ
開発サーバーの起動コマンドは?
rails server | rails s
Dockerの環境
- $
rails new <プロジェクト名> - これでいい