在做 Rails 教程时 nil:NilClass 的未定义方法“名称”

undefined method `name' for nil:NilClass when doing a Rails tutorial

当我添加:<p>Project: <%= @work.project.name %></p> 我得到 nil:NilClass 的未定义方法“名称” 除了导致问题的以下代码外,我在 Git 上一切正常:

<h1><%= @work.datetimeperformed %></h1>

<p>User: <%= @work.user.fname %> <%= @work.user.lname %></p>

<p>Project: <%= @work.project.name %></p>

<p>Hours: <% @work.hours %></p>

在 Git 上:https://github.com/gitchrisadams/timetracker

如有任何帮助,我们将不胜感激。

这样试试:-

<p>Project: <%= @work.project.present? ? @work.project.name : "" %></p>

这里@work没有任何project,所以那个@workproject是nil。所以由于 @work.project.name,它抛出了那个错误。

关系应该是这样的:-

class Project < ActiveRecord::Base
  has_many :works
end

class Work < ActiveRecord::Base
  attr_accessible :project_id, :name
  belongs_to :project
end

请参阅本指南 has many relation