IT分からんわ~_~;

IT色々お勉強中のブログ

Rails 5.2.0 beta: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials

英訳しただけ

weblog.rubyonrails.org

Railsのアップデートを扱うのが難かしいです。
利用できる良いプラグインがたくさんありましたが、フレームワーク自体に組み込むのが遅くなりました。
だから今できました!

 Rails 5.2の新しいActive Storageフレームワークを使用して、ファイルをクラウドに直接アップロードする方法を解決しました。
すぐに使えるのは、AmazonのS3、GoogleのCloud Storage、Microsoft Azure Cloud File Storageのサポートです。

画像を扱っている場合は、その場で色々と作成することができます。
あなたがビデオやPDFを扱っているなら、その場でプレビューを作成することができます。
また、タイプに関係なく、非同期的にメタデータ抽出のアップロードを分析できます。

 Active Storageは、Basecamp 3からGeorge Claghornによって抽出されました。
そのため、フレームワークは既にプロダクションで使用されているから生まれました。
その抽出デザインの保証は大丈夫です!

抜粋といえば、Jeremy DaerはBasecampで使用していたハックを利用して、
一般的な部分的、断片的、その他のRailsキャッシングジョブにRedisを採用しました。
ベテランのハッキングを誰もが使用できるユニットに組み込んだ新しいレディスキャッシュストアがあります。

この新しいRedisキャッシュストアは、Redisを介したMemcachedのようなシャーディングのためにRedis :: Distributedをサポートしています。
耐障害性があるので、例外でリクエストを強制終了するのではなく、失敗を処理します。

また、完全な部分コレクションキャッシングの良さのために分散型MGETをサポートしています。
これは、キーのリサイクルと圧縮の両方をデフォルトで利用できるようにすることで、キャッシュの効率を大幅に向上させます。
 Basecampの場合、キャッシュの寿命を2桁向上させることになりました!
私たちはキャッシュを持っていたことから、1日の間に少しずつゴミを出してから、キャッシュを出すことを数ヶ月続けました。
部分的なキャッシングと入れ子の手動戦略を利用して、これら2つの変更の間にキャッシュの有効期間が大幅に改善させることができます。

我々はまた、アーロン・パターソンとアイリーン・ウチテルを通して、HTTP / 2を早期のヒントで受け入れました。
つまり、必要なスタイルシートとJavaScriptアセットを早期に送信するようWebサーバーに自動的に指示することができました。
誰もが、より速い全ページ配信を望んでいます。

パフォーマンスに関する話題で、RailsはShopifyの友人が作成したデフォルトのGemfileにBootsnapを同梱して出荷するようになりました。
一般に、アプリケーション起動時間を50%以上短縮します。 

Railsは、Webアプリケーションをより安全にする最前線にあり、CSRFとXSSの組み込みの保護機能を提供しています.Rails 5.2では、コンテンツを設定できる新しいDSLが追加されました。アプリケーションのセキュリティポリシー。グローバルなデフォルトポリシーを設定し、それをリソース単位でオーバーライドしたり、lambdaを使用してマルチテナントアプリケーションのアカウントサブドメインなどのヘッダーにリクエスト単位の値を注入することさえできます。

しかし、それはまったく新しい驚異ではありません。 Rails 5.1では、暗号化されたアルゴリズムを追加しました。これらのものは以前のものよりもっと強固な暗号化です!

混乱してますか?なぜあなたは本当に秘密ではない秘密を望んでいますか?まあ、皆さんはしません。 
Rails 5.2では、2つの異なる種類の秘密を非難することによって混乱を修正し、Credentialsという新しい共有概念を導入しました。 
AWSアクセスキーや他の形式のログインやパスワードなどの認証情報は、秘密の主要なユースケースでした。
なぜスペードをスペードと呼ぶのはなぜですか。

クレデンシャルは常に暗号化されます。つまり、鍵を保持している限り、リビジョン管理をチェックするのは安全です。つまり、アトミックデプロイ、環境変数の混乱を避ける必要はなく、アプリケーションが安全で安全な場所で必要とするすべての資格情報を持つという利点があります。
さらに、資格情報の基礎となるAPIを公開しているため、他の暗号化された設定、キー、ファイルを簡単に処理できます。 

Rails 5.1以降、Webpackerとの大きな進歩もありました。だから、Rails 5.2は新しいWebpacker 3.0リリースと美しく調和することを意図しています。 Railsは、Webpackによって実行される事前設定のビルドパイプラインを使用して、最新のJavaScriptを完全に採用しています。私たちはその関係を強化し続けています。もちろん、Railsの今回の新リリースでは、約5桁の修正、改良、調整が行われています。

 Rails 5.1以降、過去7か月間に愛されて入札されました。私たちはこれを皆さんと共有することができてとても嬉しく思います。また、Railsを素晴らしいフレームワークにするために継続して努力してくださった多くの寄稿者に感謝しています。これは、Rails 5.2の最初のベータリリースです。我々はまだすべてに最終的な触れ合いをしていますが、あなたはそれをスピンアップすることを強く勧められます!既存のアプリをアップグレードして、新しいアプリを起動してみてください。あなたは堅実なリリースのためにあなたの助けが必要です。 
Basecampはすでに最新版を実行しているので、まだ問題があるかもしれないが、すでにマイナーリリースに入っている

gemの依存関係調べる

gemの依存関係調べる

root@153ac4a865b8:/usr/local/teachme# bundle exec gem dependency rspec
Gem rspec-core-3.6.0
  aruba (~> 0.6.2, development)
  coderay (~> 1.0.9, development)
  cucumber (~> 1.3, development)
  flexmock (~> 0.9.0, development)
  minitest (~> 5.3, development)
  mocha (~> 0.13.0, development)
  rr (~> 1.0.4, development)
  rspec-support (~> 3.6.0)
  thread_order (~> 1.1.0, development)

Gem rspec-expectations-3.6.0
  aruba (~> 0.6.2, development)
  cucumber (~> 1.3, development)
  diff-lcs (< 2.0, >= 1.2.0)
  minitest (~> 5.2, development)
  rake (~> 10.0.0, development)
  rspec-support (~> 3.6.0)

Gem rspec-mocks-3.6.0
  aruba (~> 0.6.2, development)
  cucumber (~> 1.3.15, development)
  diff-lcs (< 2.0, >= 1.2.0)
  minitest (~> 5.2, development)
  rake (~> 10.0.0, development)
  rspec-support (~> 3.6.0)

Gem rspec-rails-3.6.0
  actionpack (>= 3.0)
  activesupport (>= 3.0)
  ammeter (~> 1.1.2, development)
  aruba (~> 0.5.4, development)
  cucumber (~> 1.3.5, development)
  railties (>= 3.0)
  rspec-core (~> 3.6.0)
  rspec-expectations (~> 3.6.0)
  rspec-mocks (~> 3.6.0)
  rspec-support (~> 3.6.0)

Gem rspec-support-3.6.0
  bundler (~> 1.3, development)
  rake (~> 10.0.0, development)
  thread_order (~> 1.1.0, development)

Robocopを無視したい ネストしたModule/ClassをRubyで定義する時のコーディングスタイル

ネストしたModule/ClassをRubyで定義する時のコーディングスタイルの話。 - Sooey

ウザいRobocopを無視

Style/ClassAndModuleChildren:
  Enabled: false

rails 呼び出し先を確認

呼び出し先を確認

params[:controller]
params[:action]
caller_locations(1).first.label

pry

lsはオブジェクトのメソッドや、変数の表示
find-methodはメソッドを検索してくれます。

github.com

mac terminal起動時に.bashrcを読み込むようにする

homeでvim .bash_profileを作成して以下の様に書けばいい

if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi

macにgit補完、branch表示を追加

brew install git

.bashrc or .bash_profileに追加

source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash

下記も追加

GIT_PS1_SHOWDIRTYSTATE=true
export PS1='\h\[\033[00m\]:\W\[\033[31m\]$(__git_ps1 [%s])\[\033[00m\]\$ '

反映

source ~/.bashrc

qiita.com

model 関連付けを調べる

全部

User.reflect_on_all_associations

belongs_to だけ

Group.reflect_on_all_associations(:belongs_to)

has_many だけ

Group.reflect_on_all_associations(:has_many)