【发布时间】:2014-04-30 03:44:45
【问题描述】:
所以,我是 Ruby/Sinatra 的新手,上过很多代码学院课程等。我决定在我真正构建一些东西之前,我不会真正理解一些核心概念。
我找到了一个tutorial,用于在 Sinatra 中构建一个待办事项列表应用程序,在我使用编辑和删除功能之前一切都很好。我可以读写数据库,但每当我尝试编辑或删除时,它都会直接跳到“找不到笔记”。
我自己想不通,所以我问了我的一位开发者朋友。当我将代码发送给他时,对他来说一切都很好!我们尝试了几种不同的可能修复方法,但没有结束。我什至从那家伙的github 下载了代码,以防万一我自己的代码中的某个地方出现随机错误,但无济于事。
所以,我来这里寻求帮助!为什么这行不通!
澄清:这是一些代码,我认为问题可能出在哪里。在edit.erb 和delete.erb 中,无论它是什么都将转到else 语句并将我发送到“note 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 %>
删除.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 %>
【问题讨论】:
-
除非您向我们发布一个简短的工作示例来证明您的问题,否则您实际上是在问我们“我的口袋里有什么?”
-
编辑了一些澄清,谢谢