维护导航视图部分链接的好方法是什么?

时间:2014-03-23 21:15:29

标签: ruby-on-rails ruby

我的管理员面板(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": []
            }
        ]
    }
]

我应该把它粘贴在哪里,如何将它传递给部分?

1 个答案:

答案 0 :(得分:1)

  • 您可以使用rails路径助手,而不是硬编码网址。 因此,您应使用/dashboard/products

  • 之类的内容,而不是dashboard_products_path
  • 如果你的项目/管理面板很小,我就不会发现编写部分w / o配置文件的问题。

  • 如果您仍想使用配置文件 - 最简单的方法是在帮助程序中生成数组。类似的东西:

module DashboardsHelper
  def navigation_data
    [
      {
        text: 'Home',
        path:  dashboard_path,
      },
      ...
    ]
  end
end

然后你可以在部分中循环遍历这个数组,并在sublinks存在时使用递归。如果你想让它更好,你可以创建ruby配置文件并将配置放到块中。然后在帮助器的上下文中生成此块,并执行与先前方法相同的操作。

相关问题