2017-08-12 167 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 
相关问题