我的管理员面板(DashboardController
)有一个控制器。仪表板布局的视图部分包含导航的无序列表(和子列表)。
即使在视图中,部分链接硬编码感觉很脏,我想在导航部分内部设置一个循环,在那里我可以传递一个看起来像这样的数组:
[
{
"text": "Home",
"url": "/dashboard",
"sublinks": []
},
{
"text": "Products",
"url": "",
"sublinks": [
{
"text": "New Product",
"url": "/dashboard/products/new",
"sublinks": []
},
{
"text": "Manage Products",
"url": "/dashboard/products",
"sublinks": []
}
]
},
{
"text": "Users",
"url": "",
"sublinks": [
{
"text": "New User",
"url": "/dashboard/users/new",
"sublinks": []
},
{
"text": "Manage Users",
"url": "/dashboard/users",
"sublinks": []
}
]
}
]
我应该把它粘贴在哪里,如何将它传递给部分?
答案 0 :(得分:1)
您可以使用rails路径助手,而不是硬编码网址。
因此,您应使用/dashboard/products
。
dashboard_products_path
如果你的项目/管理面板很小,我就不会发现编写部分w / o配置文件的问题。
如果您仍想使用配置文件 - 最简单的方法是在帮助程序中生成数组。类似的东西:
module DashboardsHelper def navigation_data [ { text: 'Home', path: dashboard_path, }, ... ] end end
然后你可以在部分中循环遍历这个数组,并在sublinks
存在时使用递归。如果你想让它更好,你可以创建ruby配置文件并将配置放到块中。然后在帮助器的上下文中生成此块,并执行与先前方法相同的操作。
你可以看看一些可以完成这项工作的宝石。例如,简单导航:https://github.com/codeplant/simple-navigation
您的导航文件看起来非常常见,也许您可以考虑使用一些现成的管理系统,例如active_admin(http://activeadmin.info/)。