我刚刚从PHP切换到rails,我正在试图弄清楚如何让我的menu_price控制器访问我的类别控制器中的变量。
class CategoriesController < ApplicationController
before_action :set_category, only: [:show, :edit, :update, :destroy]
def index
@categories = Category.all
end
我想到了全局变量,但我认为这不是一种安全的方法。我还读到ruby不支持多重继承,这将是我的第二种方法。
这是我的菜单控制器(我只添加了一部分,因为其余代码不相关。)
class MenuPricesController < ApplicationController
before_action :set_menu_price, only: [:show, :edit, :update, :destroy]
def index
@menu_prices = MenuPrice.all
end
我确信这很简单,但我一直在寻找过去一小时左右的答案。我读到了关注文件夹,但我不知道如何处理,我在书中没有那么远。
答案 0 :(得分:2)
在您的MenuPricesController
中,您可以创建一个新的Category
实例并像这样使用它:
class MenuPricesController < ApplicationController
before_action :set_menu_price, only: [:show, :edit, :update, :destroy]
def index
@menu_prices = MenuPrice.all
@categories = Category.all
# do something
end
答案 1 :(得分:1)
Category.all未在您的CategoriesController类中定义,它在Category类中(我假设它是一个ActiveModel模型......)您可以(并且应该)在您的类中创建实例变量控制器动作。