7

我有一个侧边栏,其中包含一些逻辑,类似于视图如何与控制器对话。我在哪里放置部分的逻辑?我是否为布局创建一个新控制器并将其放入其中?

该布局适用于登录用户,例如仪表板。仪表板将有一个侧边栏,在每个页面上显示相同的动态内容。由于它显示在每一页上,我想把它放在一个部分中。

我只是对在哪里放置发现和所有这些信息感到困惑。

4

3 回答 3

8

也许有更好的方法可以做到这一点,但如果它在大多数或所有页面上,您可以在 ApplicationController 上创建一个before_filter 。您必须调用skip_before_filter不需要数据的控制器/操作。

class ApplicationController < ActionController::Base
  before_filter :load_sidebar_data

protected
  def load_sidebar_data

  end
end

如果您在大多数页面上不需要它,您仍然可以将该方法放在 ApplicationController 中,您只需在需要它的地方添加 before 过滤器。

于 2009-08-21T17:03:41.917 回答
1

将部分放在布局文件夹中。文件名应以下划线开头,例如“_mypartial.html.erb”。

然后,在您的视图中,使用以下代码包含部分

“我的部分” %>

请注意,在指定要渲染的部分时,不要在嵌入的 ruby​​ 代码中包含下划线。

于 2009-08-21T16:45:22.627 回答
1

您可以考虑使用 Cells(查看 Rails 的组件): http ://cells.rubyforge.org/

于 2010-08-30T21:32:51.003 回答