2015-05-14 3 views
0

Я пытаюсь изучить рельсы, и я хотел бы получить более глубокое понимание того, как все это работает. И у меня может быть некоторая путаница в том, что должно быть единственно и что должно быть множественным.Как отлаживать рельсы «неопределенный метод« url »для nil: NilClass»?

У меня есть таблица покрытий в базе данных с 2 столбцами: url и path.

db/schema.rb: 
 

 
    ActiveRecord::Schema.define(version: 20150514120143) do 
 
     create_table "covers", force: :cascade do |t| 
 
     t.text "url", null: false 
 
     t.text "path" 
 
     end 
 
    ... 
 

 
    app/controllers/covers_controller.rb: 
 

 
    def index 
 
     #render text: "hello from index in CoversController" 
 
     # I can get this render message so I think the routing is ok 
 
     @covers = Cover.all 
 
     end 
 
    ... 
 
    app/models/cover.rb 
 
    class Cover < ActiveRecord::Base 
 
     validates :url, presence: true, 
 
         length: { minimum: 3 } 
 
    end 
 

 
    app/views/covers/index.html.erb: 
 

 
    <h1>List Covers</h1> 
 

 
    <table> 
 

 
    <tr> 
 
    <th>url</td> 
 
    <th>path</td> 
 
    </tr> 
 

 
    <% @covers.each do |cover| %> 
 
    <tr> 
 
    <td><%= @cover.url %></td> 
 
    <td><%= @cover.path %></td> 
 
    </tr> 
 
    <% end %> 
 

 
    </table>

Когда я перейти к http://localhost:3000/covers, я получаю эту ошибку неопределенный метод `URL» для ноль: NilClass

Есть неприятности действительно, что я получаю NilClass вместо обложки (или обложки?)

ответ

0

Используйте этот код:

<% @covers.each do |cover| %> 
    <tr> 
    <td><%= cover.url %></td> 
    <td><%= cover.path %></td> 
    </tr> 
<% end %> 
+0

Это сделало трюк. Спасибо. Думаю, я вернусь к чтению больше из учебника и Rails. –

Смежные вопросы