Ruby
Emacs連携
Emacs参照.
Gemのアンインストール
1
2
3
4
5
6
7
8
9
10
11
12
13 | gem list --no-versions | grep "^[a-z]" | xargs gem uninstall -aIx
```
## rbenv
```sh
brew install rbenv
brew install ruby-build
rbenv install --list # => インストール可能なバージョン一覧の表示
rbenv install 3.0.0 # => rubyのインストール
rbenv rehash # => rbenv の再読み込み
rbenv global 3.0.0 # => defaultで使うrubyのバージョン
ruby -v
|
Ruby on Rails
ActiveSupport::MessageEncryptor::InvalidMessage
- 参考
rails s
でこのエラーが出ていた. - credentials.yml.encファイルを削除しからrails credentials:editコマンドをもう一度実行する
- これでcredentials.yml.encが再生成され, この上でrails sすれば実行できる(できた)
bundle installした後はrails s再実行
タイトル通り: bundle installしたらrails sを再起動すること.
devise
登録できない: (デフォルトでは)パスワードは長めで
| rails c
> user = User.new(email: "hoge@hoge.com", name: "testname", password: "pass")
> user.valid?
> p user.errors
|
- パスワードが短いと次のようなエラーが出る:
user.errors
を見ればよい.
| #<ActiveModel::Errors:0x0000562c12446b70 @base=#<User id: nil, email: "hoge@hoge.com", created_at: nil, updated_at: nil, name: "testname">, @errors=[#<ActiveModel::Error attribute=password, type=too_short, options={:allow_blank=>true, :count=>6}>]>
=> #<ActiveModel::Errors:0x0000562c12446b70 @base=#<User id: nil, email: "hoge@hoge.com", created_at: nil, updated_at: nil, name: "testname">, @errors=[#<ActiveModel::Error attribute=password, type=too_short, options={:allow_blank=>true, :count=>6}>]>
|
attribute=password, type=too_short
だからパスワードが短い.
Mac(M1 Mac, monterey)でmysql2がインストールできない
- brewでmysqlをインストールしたあと次のコマンドを実行したか確認
| echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc`
|
- bundle installしてエラーが出たらメッセージを確認
ld: library not found for -lssl
が出ていたら次を実行 - これはMacの標準のSSLが/usr/bin/opensslでLibreSSL 2.8.3だから.
- 以下対応しているOpenSSLに修正
| brew install openssl
brew list openssl
...
/opt/homebrew/Cellar/openssl@3/3.0.2/bin/openssl
...
|
- 参考
- 次のコマンドを実行してopensslを使うように設定
| brew list openssl
...
/opt/homebrew/Cellar/openssl@3/3.0.2/bin/c_rehash
...
brew link --force openssl@3
echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
bundle install
|
| brew info openssl@3 | grep LDFLAGS
export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib"
bundle config --local build.mysql2 "--with-ldflags=-L/opt/homebrew/opt/openssl@3/lib"
bundle install
|
コマンド
| rails c # コンソール立ち上げ
rails s # 起動
rails db:migrate
rails g rspec:model user
|
新機能を作る
| rails g model relationship following_id:integer follower_id:integer
rails g controller relationships create destroy
rails db:migrate
|
データベースを見たい
- A5SQLを入れよう: MacでもWineを使えば導入できる
rails c
でコンソールを立ち上げてPost.all
やPost.find(id)
を実行するとある程度は代替可能
ログ
| debugger.log("some string")
|