所以,我是一个 Rails 新手,可能遗漏了一些明显的东西,但是当我尝试使用 .includes 急切地加载关联时,为什么我得到一个 NoMethodError 让我有点惊讶。
这是我的代码:
预测控制器.rb
def show
@forecast = Forecast.find(params[:id])
@forecast_projects = Project.includes(:project_type).where("forecast_id =?", params[:id])
end
_project.html.erb(此文件是在 Forecast 操作中呈现的集合部分)
<%= project.project_type.title %>
由于某种原因,这会产生以下错误:
预测中的 NoMethodError#show
显示第 1 行引发的 /path :
nil:NilClass 的未定义方法“标题”
奇怪的是,如果我将forecasts_controller.rb更改为...
def show
@forecast = Forecast.find(params[:id])
@forecast_projects = Project.joins(:project_type).where("forecast_id =?", params[:id])
end
突然间,一切都开始完美运行。有人可以帮我弄清楚我在这里缺少什么(并原谅我缺乏经验)吗?