1
我正在关注this Sinatra blog post在Ruby Sinatra中构建自己的博客,唯一的区别是我的模板很薄,而不是ERB。编辑博客文章时没有收到Sinatra的数据
我遇到的问题是保存编辑的帖子。帖子实际上保存了,但并没有将我重定向到最近编辑的页面,并且Chrome给我一个“没有数据收到错误”,错误代码:ERR_EMPTY_RESPONSE。
所以我的问题是如何处理无数据收到?
西纳特拉路线
get '/posts/:id/edit' do
@post = Post.find(params[:id])
@title = 'Edit Post'
slim :'posts/edit'
end
put '/posts/:id' do
@post = Post.find(params[:id])
if @post.update_attributes(params[:post])
redirect '/posts/#{@post.id}'
else
slim :'posts/edit'
end
end
修身模板
h1 Edit Post
form action="/posts/#{@post.id}" method="post"
input type="hidden" name="_method" value="put"
label for="post_title" Title:
input id="post_title" name="post[title]" type="text" value="#{@post.title}"
label for="post_body" Body:
textarea id="post_body" name="post[body]" rows="5" #{@post.body}
input type="submit" value="Save"
我使用的sqlite3的博客数据库[如在博客中说。
看来这取决于正在使用哪个服务器。瘦高兴地发送一个重定向到'/ posts /#{@ post.id}'(这就是为什么我要发表评论说这个答案是错误的),但是使用Webrick(如果没有安装其他服务器,默认情况下)确实引发了一个异常,导致没有数据被返回。 – matt
我使用霰弹枪作为服务器。谢谢你!这工作。我不知道Ruby。 – liloka
有趣,@matt - 我不知道。这太酷了。 – acsmith