gpt4 book ai didi

ruby-on-rails - 布局中的实例变量

转载 作者:行者123 更新时间:2023-12-04 10:32:23 25 4
gpt4 key购买 nike

我对 Rails 相当陌生,所以如果我使用了错误的术语,我深表歉意。

我有一个模型 Menuitem,我想在布局中显示其内容。如何将实例变量传递到布局中?

我正在寻找某种布局助手,但我找不到任何东西。我也在考虑在应用程序 Controller 中定义实例变量以在布局中访问它,这行得通吗?如果是这样,最好的方法是什么?

谢谢!

最佳答案

我要注意两件事。首先,您可能不希望每次在应用程序中呈现任何页面时都执行此查询。你肯定想缓存你的 MenuItems。其次,在 MenuItems 类上放置一个方便的方法来缓存这个值可能会有所帮助。所以,如果我定义一个方法

def MenuItem.all_for_menu
@@all_for_menu ||= MenuItem.find(:all) #returns value if exists, or initializes it
end

我可以在布局中调用 MenuItem.all_for_menu 并获取所有菜单项。每当您添加一个新的或编辑一个时,您都必须使其无效。

另一种缓存方法是将数据放入部分并使用标准缓存调用缓存该片段:
<% cache(:controller => "menu_items",
:action => "list",
:action_suffix => "all_menu_items") do %>
<%= render :partial => "menu", :collection => MenuItem.all_for_menu %>
<% end %>

然后,您可以通过调用使该片段过期:
expire_fragment(:controller => "menu_items", :action => "list", :action_suffix => "all_menu_items")

关于ruby-on-rails - 布局中的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1837495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com