来自默认的脚手架生成器我的博客控制器中有以下create
操作:
# POST /blogs
# POST /blogs.json
def create
@blog = Blog.new(params[:blog])
respond_to do |format|
if @blog.save
format.html { redirect_to @blog, notice: 'Blog was successfully created.' }
format.json { render json: @blog, status: :created, location: @blog }
else
format.html { render action: "new" }
format.json { render json: @blog.errors, status: :unprocessable_entity }
end
end
end
当发送的表单包含错误时,我的浏览器会重定向到/blogs
网址,但在页面中会呈现new
操作。
在我看来这真的很难看(以及简化我的javascript)我希望浏览器保持在同一个blogs/new
网址中。
我尝试更改redirect_to :new
而不是render action: "new"
,但这当然会丢失@blog
数据。
关于如何做到这一点的任何线索?
谢谢,
答案 0 :(得分:0)
如果你想在路径中保留新的东西,你可以使用params重新定向:
redirect_to new_blog_path(blog: params[:blog])
然后在博客#new
中检查这些参数