gpt4 book ai didi

crystal-lang - 在 Controller 上声明实例变量的类型

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

我有一个关于 Jennifer.cr 的关于 Amber 框架的 Crystal-lang 项目,我的 Controller 出现此错误:

Can't infer the type of instance variable '@companies' of CompanyController
@companies = Company.all

Controller 是:
class CompanyController < ApplicationController
def index
@companies = Company.all
render("index.slang")
end
end

当我尝试以这种方式解决问题时:
class CompanyController < ApplicationController
def index
@companies : Array(Company) = Company.all
render("index.slang")
end
end

我有另一个错误:
instantiating 'CompanyController#index()'
in src/controllers/company_controller.cr:7: declaring the type of an instance variable must be done at the class level

@companies : Array(Company) = Company.all

我怎样才能解决这个“简单”的问题?

最佳答案

您不必在这里使用实例变量。局部变量是 Amber 应用程序默认使用的一种方式(它们可以在 View 中访问):

class CompanyController < ApplicationController
def index
companies = Company.all
render("index.slang")
end
end

但是如果由于某种原因要使用实例变量,则需要在类级别进行声明和初始化或 follow other type inference rules .

关于crystal-lang - 在 Controller 上声明实例变量的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46916068/

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