我的网站已启动并运行了几个月。在其中,有一个名为Project的模型。我最近在items表中添加了一个名为“expired”的布尔数据库字段,默认设置为false。现在,在尝试创建项目时,我只在生产中收到以下错误:
NilClass#create (ActiveRecord::UnknownAttributeError) "unknown attribute: expired"
我认为这意味着db字段不存在,但我检查了控制台并且“expired”属性存在。错误发生在项目控制器的这一行:
@project = current_user.projects.new(project_params)
这是project_params:
def project_params
params.require(:project).permit(:title, :location, :budget, :description,
:time_frame, {:tag_list => []},
questions_attributes: [:content, :id, :_destroy])
end
我不确定导致此错误的原因。一般来说,我只想处理未过期的项目,所以我在模型中有以下内容:
default_scope { where(expired: false) }
我不知道为什么会导致这个错误。我还需要默认的范围是过期的,所以我不能把那条线拿走。
我该如何解决这个问题?