導入
ギットハブ: まともな露出の宝石
Decent Exposure を使用すると、インスタンス変数を繰り返す代わりに、コントローラーのアクション全体で使用できる公開変数を作成できます。公開された変数はビューからもアクセスでき、結果の値を記憶します。言い換えれば、これはコントローラーで宣言型インターフェイスを作成するためのヘルパーです。
いくつかのポイント
- カプセル化の改善
- ビューの変数はコントローラーの上部に表示されます
- Strong_parameters、デコレータとの互換性
- コードの匂いを暴露します。
ここを見てください: http://c2.com/cgi/wiki?CodeSmell
Rails アプリで適切な露出の gem を使用するためのヒント
- 宝石を追加する 「まともな露出」 Gemfile にアクセスし、バンドルのインストールを実行します。
- コントローラーの使い方 まともな露出 次のようになります:
- デフォルトでは、機密性の高いモデル属性を誤って更新することを防ぐ方法として、適切な露出が含まれており、すべてのパラメータをホワイトリストに登録する必要があります。強力なパラメータを渡すためのサポートが組み込まれています。
- It deals with overexposure.The ideal number of exposures is two per controller
(1 -> singular resource, e.g. item and 2 -> plural collections e.g. items). - コントローラー クラスの最上位がエクスポーズ ステートメントで混雑している場合、エクスポーズする変数がビューで使用されない可能性がある、および複数の責任を持つコントローラーなど、2 つのコード臭が発生する可能性があります。
- We can utilize expose with block feature to decorate the object:
expose(:item) { |default| ItemDecorator.new(default) } - モデルクラスが Blog::Post のような名前空間によってスコープされている場合は、model を使用して公開呼び出しでそれを指定する必要があります。
class Blog::PostsController < ApplicationController
expose(:post, model: Blog::Post)
終わり
いくつかのリソース
API の変更: 新しいバージョンでの API の変更点
レールキャスト: まともな露出
きちんとした装飾: まともな装飾の宝石
ブログ: コントローラーとビューの結合を減らす方法
乞うご期待!
Thanks,
ルバイブ・シージェイ
シニア Ruby on Rails 開発者