Decent Exposure Gem – Adjö till upprepande instansvariabler

Introduktion

Github: Anständig exponering pärla
Decent Exposure tillåter oss att skapa exponerade variabler som kan användas över kontrollenhetens handlingar istället för att upprepa instansvariabler. Exponerade variabler är också tillgängliga från vyer och memorerar de resulterande värdena. Det är med andra ord en hjälpreda för att skapa deklarativa gränssnitt i styrenheter.

Några poäng

  • Förbättrar inkapslingen
  • Variabler för vyer kan visas överst på kontrollenheten
  • Kompatibel med strong_parameters, dekoratörer
  • Avslöjar kodlukter.

Ta en titt här: http://c2.com/cgi/wiki?CodeSmell

Tips för att leka med anständig exponeringspärla i en Rails-app

  • Lägg till pärla "anständig_exponering" till Gemfilen och kör paketinstallationen
  • Hur en kontroller använder anständig_exponering ser ut som:

Anständig exponering pärla

  • Som standard inkluderades Decent exponering som ett sätt att förhindra oavsiktlig uppdatering av känsliga modellattribut och det kräver att alla parametrar är vitlistade. Den har inbyggt stöd för att skicka starka parametrar.
  • 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).
  • Om toppen av controllerklassen är full av exponeringssatser, kan två kodlukter uppstå som att exponeringsvariabler kanske inte används i sikte och Controller med flera ansvarsområden.
  • We can utilize expose with block feature to decorate the object:
    expose(:item) { |default| ItemDecorator.new(default) }
  • Om modellklasserna omfattas av ett namnområde som Blog::Post måste vi ange det i expose-anropet med modell:

    class Blog::PostsController < ApplicationController
    expose(:post, model: Blog::Post)
    slutet

Vissa resurser

API-ändringar: API-ändringar i ny version
Railscasts: Anständig exponering
Anständig dekoration: Anständig dekoration pärla
En blogg: Hur man minskar kopplingen i Controllers och Views

Håll ögonen öppna!

Thanks,

LUBAIB CEEJEY
Sr Ruby on Rails utvecklare 

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish