我有一个sinatra应用程序,我正在写。我正在尝试编写一个页面来显示存储在数据库中的单个模式。使用DataMapper的我创建了一个类:NoMethodError,在sinatra调用属性
require 'dm-core'
require 'dm-migrations'
DataMapper.setup(:default, "sqlite://#{Dir.pwd}/development.db")
class Pattern
include DataMapper::Resource
property :id, Serial
property :patt, String
property :sentence, String
property :descript, Text
end
DataMapper.finalize
处理/模式/路由:id为...
get '/pattern/:id' do
@patts = Pattern.get(params[:id])
erb :pattern
end
在我pattern.erb文件...
<div class="span10">
<h2><%= @patts.patt %></h2>
<p>Example: <%= @patts.sentence % @patts.patt %><p>
<p>Description: <%= @patts.descript %></p>
</div>
我得到的错误是...
NoMethodError at /pattern/1
undefined method `patt' for nil:NilClass
file: pattern.erb location: block in singleton class line: 6
什么是不是我不做或者做错了?
不是。我有数据,它显示在应用程序的其他部分没有问题。 –
你应该添加一些这样的测试代码:''''/ pattern /:id'do puts params [:id] @patts = Pattern.get(params [:id])puts @patts erb:pattern end ''' –