所以,我是Ruby/Sinatra的新手,做了一堆codecademy課程等等。我決定,直到我真正建立了一些東西,我不會真正理解一些核心概念。Sinatra待辦事項列表教程問題
我發現了一個tutorial用於在Sinatra中構建任務列表應用程序,並且在編輯和刪除功能之前一切都很好。我可以讀寫數據庫,但是每當我嘗試編輯或刪除時,都會直接跳到「找不到註釋」。
我自己弄不明白,所以我問了我的開發者朋友。當我給他發送代碼時,對他來說一切都很順利!我們嘗試了幾種不同的可能修復方法,但沒有結束。我甚至從這個人的github下載了代碼,以防萬一在我自己的代碼中出現了一個隨機錯誤,但無濟於事。
所以,我來這裏尋求一些幫助!爲什麼不能這樣工作!
說明:以下是一些代碼,我認爲這個問題可能存在。在edit.erb和delete.erb中,無論它是發給else語句還是發送給「not not found」。它正在從數據庫中正確讀取,因爲我的主頁可以添加和顯示筆記。
recall.rb
get '/:id' do
@note = Note.get params[:id]
@title = "Edit note ##{params[:id]}"
erb :edit
end
put '/:id' do
n = Note.get params[:id]
n.content = params[:content]
n.complete = params[:complete] ? 1 : 0
n.updated_at = Time.now
n.save
redirect '/'
end
get '/:id/delete' do
@note = Note.get params[:id]
@title = "Confirm deletion of note ##{params[:id]}"
erb :delete
end
delete '/:id' do
n = Note.get params[:id]
n.destroy!
redirect '/'
end
edit.erb
<% if @note %>
<form action="/<%= @note.id %>" method="post" id="edit">
<input type="hidden" name="_method" value="put">
<textarea name="content"><%= @note.content %></textarea>
<input type="checkbox" name="complete" <%= "checked" if @note.complete %>>
<input type="submit">
</form>
<p><a href="/<%= @note.id %>/delete">Delete</a></p>
<% else %>
<p>Note not found.</p>
<% end %>
delete.erb
<% if @note %>
<p>Are you sure you want to delete the following note: <em>"<%= @note.content %>"</em>?</p>
<form action="/<%= @note.id %>" method="post">
<input type="hidden" name="_method" value="delete">
<input type="submit" value="Yes, Delete It!">
<a href="/<%= @note.id %>">Cancel</a>
</form>
<% else %>
<p>Note not found.</p>
<% end %>
除非您向我們發送一個簡短的實例來證明您的問題,否則您實際上會問我'我的口袋裏有什麼?編輯爲 – mcfinnigan 2013-04-22 15:21:40
一些澄清,謝謝 – megafrogg 2013-04-22 15:31:53