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