Ruby on Rails preoccupazioni


Esempio

Per evitare la ripetizione in percorsi nidificati, le preoccupazioni forniscono un ottimo modo per condividere risorse comuni che sono riutilizzabili. Per creare un problema, utilizzare la concern del metodo all'interno del file routes.rb . Il metodo si aspetta un simbolo e un blocco:

concern :commentable do
  resources :comments
end

Pur non creando alcuna route, questo codice consente di utilizzare l'attributo :concerns su una risorsa. L'esempio più semplice sarebbe:

resource :page, concerns: :commentable

La risorsa nidificata equivalente sarebbe simile a questa:

resource :page do
  resource :comments
end

Ciò creerebbe, ad esempio, i seguenti percorsi:

/pages/#{page_id}/comments
/pages/#{page_id}/comments/#{comment_id}

Affinché le preoccupazioni siano significative, devono esserci più risorse che utilizzano la preoccupazione. Risorse aggiuntive potrebbero utilizzare una qualsiasi delle seguenti sintassi per chiamare la preoccupazione:

resource :post, concerns: %i(commentable)
resource :blog do
  concerns :commentable
end