Pisze sobie własnego plugina i natrafiłem na problem, którego nie potrafię rozwiązać w sensowny sposób. Potrzebuje w widoku wyświetlić sobie obrazek korzystając np z image_tag. Problem w tym, że chciał bym aby ten obrazek znajdował się w katalogu z pluginem, nie w głównym katalogu aplikacji. Nie bardzo podoba mi się też pomysł z automatycznym kopiowaniem pliku do publika przez jakiegoś raka. Czy możecie mi podpowiedzieć w jaki sposób w owym widoku plugina mogę się odwołać do ścieżki wskazującej na katalog tegoż plugina?
PS. Podobny problem mam z plikami css oraz javascript znajdującymi się w katalogu plugina, a nie w publicu aplikacji.
Ten problem nie ma łatwego rozwiązania. Możesz żyć z serwowaniem statycznych plików podczas developmentu przez Rack::Static, a na produkcji kopiować assety do public/ przy pomocy jakiegoś rake taska. Dzięki Piotrowi Sarnackiemu niedługo będzie to troszkę prostsze, ale zasada będzie ta sama.
Właśnie tego chciał bym uniknąć Chciał bym, żeby instalacja plugina ograniczyła się w przyszłości do wrzucenia go do vendorsów i tyle. Bez zbędnego kombinowania z katalogami (jeżeli to w ogóle możliwe)
vendors/plugin nie są obecnie zalecanym miejscem do przechowywania pluginów, nawet była ostatnio dyskusja o tym czy nie usunąć tego katalogu. Chyba jednak zostaje na razie, ale preferowana metoda dystrybucji pluginów to gemy. Katalog vendor/plugins ma w założeniu mieć kod którym się nie dzielisz z innymi ludźmi, gdzie wyrzucasz rzeczy z głównej aplikacji aby ją bardziej uporządkować.
Dzięki za sugestie Hubert Chyba będę musiał się zdecydować jednak na kopiowanie tych plików jakimś rake taskiem rzeczywiście. Trochę to psuje moją wizję no ale co zrobić
Co do vendors/plugin, to rzeczywiście najlepiej od niego odchodzić, ale z tego co ostatnio się dowiedziałem pluginy tam trzymane raczej nie wylecą. O ile używanie “obcych” pluginów w ten sposób nie jest wskazane (wersjonowanie, dystrybucja itp), to jednak jak trzeba szybko coś wypakować z aplikacji do pluginu, to jest to lżejsze wyjście niż gemy.
Nie wiem czy to nie ja rozpuściłem plotkę, że vendor/plugins wypadnie, jeżeli tak, to sorry za zamieszanie.