2017-08-12 2 views
1

Ich benutze web-packer mit react-rails gem, um eine Online-Reise-App zu erstellen. Ich bin vor einem Problem der Verwendung von Rails URL Helfern in meiner JSX Ansicht mit Server-Rendering:So verwenden Sie den Rails URL-Helper in Webpacker/React-Rails in Rails 5.1

Zum Beispiel in meiner jsx Ansicht:

#project/app/javascript/packs/app/components/front_end/SearchTripItemComp.erb 
 
<%= link_to "Book Now!", search_trips_path, className: 'btn btn-book' %>

Nach dem Ausführen ich das habe Fehler:

enter image description here

Was ich mir vorstellen kann, als eine Arbeit um, um pa ss the search_trips_path als Props für die Komponente aus meiner Rails-Ansicht oder direkt mit Rails.application.routes.url_helpers, aber das ist besonders für diese jsx-Views mit vielen Links sehr unpraktisch.

Ich habe versucht, Web-Packer docs zu sehen, aber es scheint, dass der Edelstein Rails View Helper für Erb-Lader nicht unterstützt.

Bitte helfen Sie mit Rat!

ps: Ich habe erb webpacker loader richtig konfiguriert.

+1

Ja, sorry, ist der einzige Weg, um es als Requisiten vorbei. Der Helfer ist in Ihrem Javascript nicht verfügbar. –

Antwort

1

Versuchen Sie dies in Ihrer jsx Ansicht:

#project/app/javascript/packs/app/components/front_end/SearchTripItemComp.erb 
 
<%= ActionController::Base.helpers.link_to "Book Now!", Rails.application.routes.url_helpers.search_trips_path, className: 'btn btn-book' %>

Verwendung:

Rails.application.routes.url_helpers.*_path 

statt

*_path 

in yo Ihre .erb-Dateien außerhalb von Ansichten funktionieren für url_helpers.

Rails.application.routes.url_helpers.search_trips_path

If you need to generate URLs from your models or some other place, then ActionController::UrlFor is what you're looking for. Read on for an introduction. In general, this module should not be included on its own, as it is usually included by url_helpers (as in Rails.application.routes.url_helpers).

ActionDispatch::Routing::UrlFor

für ähnliche link_to Sie verwenden können:

ActionController::Base.helpers.link_to 
Verwandte Themen