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_postpost 返回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

5.5版本以上”No input file specified“问题解决

5.5版本以上”No input file specified“问题解决