Getting RuntimeError: "In order to use #url_for, you must include routing helpers explicitly" when I've already included them
Getting RuntimeError: "In order to use #url_for, you must include routing helpers explicitly" when I've already included them
在控制器中,我尝试运行此代码用于当已经登录的用户偶然发现注册页面时
def index
if current_user
redirect_to homebase_url #should provide url to home for logged in users
end
end
我已经完成了 rails 错误消息所说的,并添加了:include Rails.application.routes.url_helpers
到包含控制器 class。虽然仍然收到此错误。绝对不想出于遗留目的将 URL 硬编码到那里。谢谢
删除 include Rails.application.routes.url_helpers
声明,不需要它,除非它在帮助程序之类的东西中。默认情况下,路由包含在控制器中。将它包含在模型中或 controller/initializer(路由在初始化程序之前加载)违反 MVC 体系结构,可能会导致不需要的行为。
我建议使用 homebase_path
而不是 homebase_url
例如当查看
console.log(window.location.pathname) // => "/questions/41903124/getting-r..."
console.log(window.location.host) // => "whosebug.com"
path是域名(主机)后面的东西。
完整的 URL(在您的情况下 homebase_url
)需要 host
和路径。在开发中获得主机有点尴尬,因为它在生产中的价值与在开发中的价值不同。
在控制器中,我尝试运行此代码用于当已经登录的用户偶然发现注册页面时
def index
if current_user
redirect_to homebase_url #should provide url to home for logged in users
end
end
我已经完成了 rails 错误消息所说的,并添加了:include Rails.application.routes.url_helpers
到包含控制器 class。虽然仍然收到此错误。绝对不想出于遗留目的将 URL 硬编码到那里。谢谢
删除 include Rails.application.routes.url_helpers
声明,不需要它,除非它在帮助程序之类的东西中。默认情况下,路由包含在控制器中。将它包含在模型中或 controller/initializer(路由在初始化程序之前加载)违反 MVC 体系结构,可能会导致不需要的行为。
我建议使用 homebase_path
而不是 homebase_url
例如当查看
console.log(window.location.pathname) // => "/questions/41903124/getting-r..."
console.log(window.location.host) // => "whosebug.com"
path是域名(主机)后面的东西。
完整的 URL(在您的情况下 homebase_url
)需要 host
和路径。在开发中获得主机有点尴尬,因为它在生产中的价值与在开发中的价值不同。