2017-08-12 168 views
1

我使用web-packerreact-rails gem構建在線旅行應用程序。我現在面臨使用Rails URL幫手我JSX觀點與服務器端呈現的問題:如何在Rails 5.1中使用Webpacker/React-rails中的Rails Url helper

舉例來說,在我的JSX觀點:

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

跑我這有後錯誤:

enter image description here

我能想到的,因爲周圍的工作,是PA將search_trips_path作爲道具從我的Rails視圖中直接使用Rails.application.routes.url_helpers,但這非常不方便,尤其是對於那些包含多個鏈接的jsx視圖。

我試圖環顧網絡打包文檔,但它似乎不支持erb加載器的Rails視圖助手。

請幫忙指教!

ps:我已經正確配置了erb webpacker loader。

+1

是的,對不起,唯一的辦法就是把它當作道具。助手不可用於您的Javascript。 –

回答

1

在您的JSX視圖試試這個:

#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' %>

使用:

Rails.application.routes.url_helpers.*_path 

代替

*_path 

喲外部視圖的.erb文件適用於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

同樣爲的link_to你可以使用:

ActionController::Base.helpers.link_to 
相關問題