Ruby 如果选项卡不消失,则无法在同一页上呈现控制器操作视图

Ruby 如果选项卡不消失,则无法在同一页上呈现控制器操作视图,ruby,ruby-on-rails-3,ruby-on-rails-3.1,rubygems,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Rubygems,我是一个RubyonRails新手,正在开发一个Rails3.1应用程序,其中包括带twitter引导的TabulousGem和formtastic引导gems 我的应用程序中有一个控制面板,位于一个名称空间区域下 在视图目录中的名称空间区域下,我有一个控制面板目录,它下面有一个与任何控制器操作不对应的视图页,除了一个与控制器相关的视图页,该控制器名为controlpanel_controller.rb action,名为control panel,用作控制面板的主页 目录结构如下: app/c

我是一个RubyonRails新手,正在开发一个Rails3.1应用程序,其中包括带twitter引导的TabulousGem和formtastic引导gems

我的应用程序中有一个控制面板,位于一个名称空间区域下

在视图目录中的名称空间区域下,我有一个控制面板目录,它下面有一个与任何控制器操作不对应的视图页,除了一个与控制器相关的视图页,该控制器名为controlpanel_controller.rb action,名为control panel,用作控制面板的主页

目录结构如下:

app/controllers/manager/controlpanel\u controller.rb

app/views/manager/controlpanel/controlpanel.html.erb

app/views/manager/controlpanel/project.html.erb

app/views/manager/controlpanel/graphs.html.erb

我相信我尝试做的很简单,我已经创建了一个导航菜单,它链接到这个控制面板目录下的不同视图,我想要的是当用户单击导航菜单中标记为project的链接时,在其中一个视图(project.html.erb)中显示选项卡

问题是: 我已经设法实现了我所需的选项卡,这些选项卡映射到不同的控制器动作并显示在视图中,但单击选项卡时,选项卡不会在同一页上呈现动作视图,而是将我链接到另一页。因此,基本上选项卡消失,我被路由到我将单击的选项卡的控制器视图操作,而不是保持在同一页面上。有没有人能提供一些建议,说明为什么这项工作没有达到预期效果?因为我看不出我错在哪里

我已经在下面的project.html.erb视图文件和tabulus.rb文件中包含了当前的代码

project.html.erb:

 <ul class="tabs" >
        <%= tabs %>
    </ul>
     config.tabs do
    [
      #------------------------------------------------------------------------------------------------------------------------#
      #    TAB NAME                     |    DISPLAY TEXT       |    PATH                    |    VISIBLE?    |    ENABLED?    #
      #------------------------------------------------------------------------------------------------------------------------#
      [    :manager_controlpanel_tab    ,    'Control panel'    ,    ''                      ,    false       ,    true        ],
      [    :manager_tasks_tab           ,    'Tasks'            ,    :manager_tasks_path     ,    true        ,    true        ],
      [    :manager_graphs_tab          ,    'Graphs'           ,    :manager_graphs_path    ,    true        ,    true        ],
      #------------------------------------------------------------------------------------------------------------------------#
      #    TAB NAME                     |    DISPLAY TEXT       |    PATH                    |    VISIBLE?    |    ENABLED?    #
      #------------------------------------------------------------------------------------------------------------------------#
    ]
  end

  #-------------
  #   ACTIONS
  #-------------
  #
  # This is where you hook up actions with tabs.  That way tabulous knows
  # which tab and subtab to mark active when an action is rendered.
  #
  # CONTROLLER
  #   the name of the controller
  # ACTION
  #   the name of the action, or :all_actions
  # TAB
  #   the name of the tab or subtab that is active when this action is rendered

  config.actions do
    [
      #------------------------------------------------------------------------------------#
      #    CONTROLLER               |    ACTION          |    TAB                          #
      #------------------------------------------------------------------------------------#
      [    :manager_controlpanel    ,    :all_actions    ,    :manager_controlpanel_tab    ],
      [    :manager_tasks           ,    :all_actions    ,    :manager_tasks_tab           ],
      [    :manager_graphs          ,    :all_actions    ,    :manager_graphs_tab          ],
      #------------------------------------------------------------------------------------#
      #    CONTROLLER               |    ACTION          |    TAB                          #
      #------------------------------------------------------------------------------------#
    ]
  end

听起来,您的控制器、动作和视图的组织方式与tabulous预期的不同。例如,您说“我想要的是在其中一个视图中显示选项卡”,但对于服务器端选项卡解决方案(如tabulous和TabsOnRails),每个选项卡的内容应该是不同的视图

应该发生的是,如果您有四个选项卡,那么您应该有四个操作——每个选项卡一个。这四个行动应该有自己的看法。您应该在布局中调用选项卡辅助对象,而不是在单个视图中

因此,要么您需要重新组织您的操作和视图,要么您正在尝试的操作不适合tabulous(也许您想要Ajax选项卡?)


希望这有帮助。

您需要的是将下面的代码移动到布局中。例如,到application.html.erb:

#app/application.html.erb
<ul class="tabs" > 
    <%= tabs %> 
 </ul>
#app/application.html.erb

感谢您的回复。每个选项卡都有自己的操作和视图,我试图做的是在静态页面中调用选项卡帮助器,而不是布局文件。我将研究ajax选项卡选项。