我遇到了其他相关帖子的相反问题。我正在使用一个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提供。
答案 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来修复它。