我应该在 rails3.2 源代码中查看任何方法,以便知道渲染调用的导航或 url 部分在哪里得到解决?原因是,我有一个小应用程序,其中 url 的形式是
www.example.com/bob/edit
上面建议的路线呈现编辑表单。编辑:我能够通过修改 link_to 助手上的响应来到达此路线。
def update
#when validation passes
redirect_to @user
#when validation fails
respond_to do |format|
format.html {render :action => "edit"}
end
end
现在的问题是,当提交到 users_controller 的更新操作时发生验证错误时,url 变为
www.example.com/users/bob/edit
配置/路由.rb
get "users/new", to: => "users#new"
resources :users
如您所见,路线中没有发生任何有趣的事情,
在模型/user.rb
def to_param
"#{name}"
end
在意见/edit.html.erb
form_for(@user) do |f|
end
观察:在这里,当重新呈现表单时,表单“action”指向“users/bob”,但是当表单重新呈现“验证错误的 cos”时,表单操作神秘地变为“users/”,这很奇怪,如果我删除 user.rb 模型中的 to_param 它工作正常
虽然这没什么大不了的,但我在想,如果我需要覆盖在渲染调用时生成的 url,在哪里改变??????
欢迎任何建议和探索的指针......