Rails应用程序路由在引擎中不可用

时间:2013-06-10 19:51:38

标签: view gem rails-engines

我遇到了其他相关帖子的相反问题。我正在使用一个gem来呈现一个使用应用程序布局的页面。该布局在应用程序中工作正常。在该布局中,命名路径为login_logout_path,导致undefined local or method错误。

以下是视图代码的片段:

<%= link_to( ApplicationName + ' Home', root_path ) %> |
<%= link_to('Sign Off', login_logout_path ) %> :
<%= get_session_login.iname %>

root_path工作正常,logon_logout_path失败。

复杂化可能是上面的布局和logon_logout_path由另一个包含该网站集的公共代码/布局的gem提供。

1 个答案:

答案 0 :(得分:3)

简答,改变

login_logout_path

with:

main_app.login_logout_path 

并将main_app添加到application.html.erb中转到主应用的所有路线

答案很长: 问题是引擎可以在主应用程序中使用与路径同名的路由,并且可以在不崩溃的情况下工作,如果您想在引擎中使用主应用程序的路径,则必须指定它放置

main_app.

在路线之前,如果您想在主应用中使用引擎路线,则必须使用

指定它
engineName.example_path

root_path有效,因为您的引擎定义了一个root_path,并且它将您发送到引擎的根路径,而不是应用程序中的路径,您可以通过在它之前添加main_app来修复它。