我有一個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 ''' –