我正在尝试学习rails,我想更深入地了解它是如何工作的。我可能会对什么应该是单数和什么应该是复数有些混淆。
我在数据库中有一个带有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时,我收到此错误 nil的未定义方法`url':NilClass
麻烦真的是我得到的是NilClass而不是Cover(或Covers?)
答案 0 :(得分:0)
使用此代码:
<% @covers.each do |cover| %>
<tr>
<td><%= cover.url %></td>
<td><%= cover.path %></td>
</tr>
<% end %>