在做 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
,所以那个@work
的project
是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
当我添加:<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
,所以那个@work
的project
是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