有这个控制器:
def create
@company = Company.new(params[:company])
respond_to do |format|
if @company.save
format.html { redirect_to @company, notice: 'Company was successfully created.' }
format.json { render json: @company, status: :created, location: @company }
else
format.html { render action: "new" }
format.json { render json: @company.errors, status: :unprocessable_entity }
end
end
end
有人知道为什么在尝试保存未通过验证的记录后,rails会导致“新”操作,但浏览器栏中显示的url是索引的路径(即/ companies )?
干杯!!
答案 0 :(得分:0)
发布到create
时会发生/companies
操作。如果失败,而不是重定向到新页面,它只会呈现new
操作。这是Rails的REST操作的标准。
更新记录时会看到类似的行为。编辑表单将向公司的资源(例如/companies/1
)提交PUT请求,如果验证失败,它将呈现edit
操作,而不是重定向到/companies/1/edit
。