我有一个侧边栏,其中包含一些逻辑,类似于视图如何与控制器对话。我在哪里放置部分的逻辑?我是否为布局创建一个新控制器并将其放入其中?
该布局适用于登录用户,例如仪表板。仪表板将有一个侧边栏,在每个页面上显示相同的动态内容。由于它显示在每一页上,我想把它放在一个部分中。
我只是对在哪里放置发现和所有这些信息感到困惑。
我有一个侧边栏,其中包含一些逻辑,类似于视图如何与控制器对话。我在哪里放置部分的逻辑?我是否为布局创建一个新控制器并将其放入其中?
该布局适用于登录用户,例如仪表板。仪表板将有一个侧边栏,在每个页面上显示相同的动态内容。由于它显示在每一页上,我想把它放在一个部分中。
我只是对在哪里放置发现和所有这些信息感到困惑。
也许有更好的方法可以做到这一点,但如果它在大多数或所有页面上,您可以在 ApplicationController 上创建一个before_filter 。您必须调用skip_before_filter
不需要数据的控制器/操作。
class ApplicationController < ActionController::Base
before_filter :load_sidebar_data
protected
def load_sidebar_data
end
end
如果您在大多数页面上不需要它,您仍然可以将该方法放在 ApplicationController 中,您只需在需要它的地方添加 before 过滤器。
将部分放在布局文件夹中。文件名应以下划线开头,例如“_mypartial.html.erb”。
然后,在您的视图中,使用以下代码包含部分
“我的部分” %>请注意,在指定要渲染的部分时,不要在嵌入的 ruby 代码中包含下划线。
您可以考虑使用 Cells(查看 Rails 的组件): http ://cells.rubyforge.org/