2

我在这里遇到其他相关帖子的相反问题。我正在使用一个 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 提供的。

4

1 回答 1

3

简短的回答,改变

login_logout_path

和:

main_app.login_logout_path 

并将 main_app 添加到 application.html.erb 中的所有路由到您的主应用程序

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

main_app.

在路由之前,如果您想在主应用程序中使用引擎的路由,则必须使用

engineName.example_path

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

于 2013-10-18T01:59:13.387 回答