如何修复nil:NilClass的未定义方法`user_id\'?

问题描述

| 我试图在db:migrate:reset之后启动服务器,突然我的sqlite3服务器无法启动。当服务器开始渲染我的
datum/index
页面时,我收到错误
ActionView::Template::Error (undefined method \'user_id\' for nil:NilClass)
。 在我这样做之前,我已经在数据库获取了实际价格,因此可以检测到user_id,并且一切正常,但是现在由于价格消失了,我相信它会给出此错误。 控制器-
Datum
Price
def index
  @prices = Price.all
end
视图-
datum/index
prices/index
<h1>Prices</h1>

<table>
  <tr>
    <th>User</th>
    <th>Date</th>
    <th>Price name</th>
    <th>Price</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @prices.each do |price| %>
  <tr>
    <td><%= price.user_id %></td>
    <td><%= price.date %></td>
    <td><%= price.price_name %></td>
    <td><%= price.price %></td>
    <td><%= link_to \'Show\',price %></td>
    <td><%= link_to \'Edit\',edit_price_path(price) %></td>
    <td><%= link_to \'Delete\',price,:confirm => \'Are you sure?\',:method => :delete %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to \'New Price\',new_price_path %>
我认为我是错误的,因为我是Rails的新手。我的目标是复制
prices/index
的视图,因此我的
datum/index
是相同的,因此我可以给出两种独特的外观。我该如何纠正这个问题,我是否正确地做到了?     

解决方法

        我猜你不知道10英镑是做什么的。它没有描述字符串,所以不要问
rake
它做什么,您必须查看源代码:
# desc \'Resets your database using your migrations for the current environment\'
task :reset => [\'db:drop\',\'db:create\',\'db:migrate\']
因此,“ 10”会破坏您的数据库(包括其中的任何数据),重新创建它,然后应用迁移使所有内容重新更新。但是,您所有的原始数据仍然不见了。 ѭ15的
db:drop
部分可能解释了为什么到处都得到
nil
。但是,如果所有数据都消失了,则应该从
Price.all
得到一个空数组,因此也许在重置后添加了一些内容。     ,        很奇怪,我认为这是由于在git终端上使用AptanaStudio 3而引起的。我刚刚重新启动了一切,它现在开始工作,好像数据库需要时间来刷新自身。因此,总而言之,只需重新启动一切,然后看看它是否可以工作。