CalendarPosts#index 中的 NoMethodError 用于 nil:NilClass 的未定义方法 'title'... 仅有时会出错?
Posted
技术标签:
【中文标题】CalendarPosts#index 中的 NoMethodError 用于 nil:NilClass 的未定义方法 \'title\'... 仅有时会出错?【英文标题】:NoMethodError in CalendarPosts#index undefined method 'title' for nil:NilClass... error only sometimes?CalendarPosts#index 中的 NoMethodError 用于 nil:NilClass 的未定义方法 'title'... 仅有时会出错? 【发布时间】:2018-05-10 19:45:19 【问题描述】:Rails 新手.. 我在连接表索引页面上遇到错误.. 但只是有时。我很困惑,因为有时它有效,有时却无效。此外,当我进入 pry 并搜索引发错误的原因时,该项目就在那里。
连接表关系: 帖子有很多日历/日历有很多帖子 calendars_posts 属于_to 日历 calendar_posts 属于_to 帖子
calendar_posts 控制器:
def index
@calendars = current_user.calendars
结束
index.html.erb:
<h1>Scheduled Posts</h1>
<% current_user.calendars.each do |calendar| %>
<h2> <%= calendar.name %> </h2>
<table>
<thead>
<tr>
<th>Title</th>
<th>Date</th>
<th>Time</th>
<th>Content</th>
<th>Link</th>
<th>Picture</th>
<th>Platforms</th>
<th>Finalized</th>
</tr>
</thead>
<tbody>
<% calendar.calendar_posts.each do |calendar_post| %>
<tr>
<td><%= calendar_post.post.title.titleize %> </td>
<td> <%= calendar_post.date%> </td>
<td><%= calendar_post.time %></td>
<td> <%= calendar_post.post.content %> </td>
<td> <%= calendar_post.post.link %> </td>
<td> <%= image_tag(calendar_post.post.picture_url, width: 200) if calendar_post.post.picture.present? %> </td>
<td>
<% calendar_post.post.platforms.each do |platform| %>
<%= platform.name.titleize %> <br>
<% end %>
</td>
<td> <%= human_boolean(calendar_post.post.finalized) %> </td>
</tr>
<% end %>
</tbody>
</table>
<% end %>
我只是感到困惑,因为该错误有时只会发生......但是一旦它开始发生,那么每次我尝试访问该页面时都会发生它?有什么办法可以避免 nil 的出现吗?
【问题讨论】:
对于每个calendar_post
,post
返回nil
。
【参考方案1】:
我知道人们对此投了反对票,但我总是在发布之前进行研究,最后我找到了问题所在。它与相关搜索中出现的任何其他问题不同,因此对其他人了解可能会有所帮助...在我的模型中,我有日历和帖子以及带有用户可提交时间和日期属性的连接表 CalendarPosts。用户可以创建一个帖子,并且它与所有内容分开浮动,因为我希望有人能够将想法记下来作为“填充物”,并且不需要走得更远。这个 nil:nilclass 错误来自我有依赖问题的事实。我的 calendar_posts 依赖于帖子。但是我的帖子或日历模型中没有依赖关系破坏。如果用户删除帖子,日历帖子仍然存在,但帖子不存在,这就是问题所在。添加依赖项销毁解决了我的问题。
【讨论】:
以上是关于CalendarPosts#index 中的 NoMethodError 用于 nil:NilClass 的未定义方法 'title'... 仅有时会出错?的主要内容,如果未能解决你的问题,请参考以下文章
tp5.1 错误 No input file specified.
mongodb 分页报错 too much data for sort() with no index. add an index or specify a smaller limit
如何使用 fastlane 扫描设置 COMPILER_INDEX_STORE_ENABLE=NO?
Elasticsearches 报错 no such index index_not_found_exception