从rails引擎生成的页面访问url helpers

时间:2015-08-06 12:35:51

标签: ruby-on-rails ruby gem

我实际上在rails布局中有这个:

<li><%= link_to "Blog Posts", root_path %></li>

但是当我添加blogit gem时,它开始跟踪与blogit相关联的网址的错误:

undefined local variable or method `root_path' for #<#<Class:0x007f644864ce00>:0x007f6449e8faf8>

所以我怀疑从那里无法访问网址助手。那么可以做些什么来使它们可以访问?我试过在布局中添加这个:

<% include Rails.application.routes.url_helpers %>

但它对我帮助不大。

3 个答案:

答案 0 :(得分:1)

尝试:

<li><%= link_to "Blog Posts", Rails.application.routes.url_helpers.root_path %></li>

在routes.rb文件中假设您有类似的内容:

root "home#index"

答案 1 :(得分:0)

您可以通过在引擎url_helpers中添加主应用ApplicationController来实现此目标。

module YourEngine
  class ApplicationController < ::ApplicationController
    helper Rails.application.routes.url_helpers
  end
end

应该这样做!

答案 2 :(得分:0)

尝试:

  <li><%= link_to "Blog Posts", main_app.root_path %></li>

main_app使您可以访问主机应用程序的所有url帮助器。

它在https://guides.rubyonrails.org/engines.html#routeshttps://api.rubyonrails.org/classes/Rails/Engine.html的Rails文档中进行了描述