Rails Plug -in/gema personalizados com parciais
-
26-09-2019 - |
Pergunta
Estou escrevendo uma jóia que fornece ajudantes para visualizações. O HTML que eu quero inserir através do ajudante é complexo o suficiente para que eu prefira escrevê -lo em um arquivo _parcial.html.erb. Como faço para obter o caminho da visualização da GEM no Inclua no load_path do aplicativo?
Nota: a única jóia que encontrei que faz algo assim é inventar. Quando uma visualização não pode ser encontrada, os trilhos impressam o caminho de carga que (na minha máquina) se parece:
Missing partial sortable_nested_set/tree with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/home/jason/VirtualRestaurant3/app/views", "/home/jason/.rvm/gems/ruby-1.9.2-preview3/gems/devise-1.1.rc0/app/views"
Como o Devise faz isso?
Minha jóia: http://github.com/jrmurad/sortableretestetDevive Gem: +http: //+github.com/plataformatec/devise
Solução
Se você colocar o diretório 'aplicativo' no diretório base do seu plug -in, os trilhos adicionarão o aplicativo/visualizações ao caminho da visualização por padrão.
.
├── app
│ └── views
│ └── plugin_name
│ └── _my_partial.html.erb
Então você pode renderizar o parcial do método auxiliar do seu plug -in com:
render :partial => "plugin_name/my_partial"
Observe que os Rails não disponibilizam as visualizações por padrão no ambiente de teste de plug -in. Para incluí -los, adicione o seguinte ao teste/test_helper.rb:
ActionController::Base.prepend_view_path File.dirname(__FILE__) + "/../app/views"