当我使用这种方法时:
patch '/posts/:id' do
post = Post.find(params[:id])
post.update(name: params[:name], content: params[:content])
redirect to '/posts/#{post.id}'
end
我收到错误ERROR URI::InvalidURIError: bad URI(is not URI?): http://localhost:9393/posts/#{post.id}
但是,当我硬编码id或连接字符串时,如下所示:
redirect to '/posts/' + post.id.to_s
它工作正常。我错过了一些明显的东西吗?
答案 0 :(得分:1)
在ruby中,单引号中声明的字符串文字不是内插,与双引文字不同:
"#{42}"
#⇒ "42"
'#{42}'
#⇒ "\#{42}"
因此,只需将单引号更改为参数中的双引号redirect to
。