Cod*_*ien 4 ruby routes ruby-on-rails
假设我有一个控制器动作,应该导致新的路由被添加到路由表:
def make_route
vanity_url = params[:vanity_url]
vanity_redirect = params[:vanity_redirect]
return render json: { status: 400 } unless vanity_url && vanity_redirect
Rails.application.routes.draw do
get vanity_url, to: redirect(vanity_redirect)
end
render json: { status: :ok }
end
Run Code Online (Sandbox Code Playgroud)
当我触发此动作时,它会添加新路线,但会完全删除表格的其余部分!在绘制新表时,如何在原始路径前添加,追加或以其他方式映射?
在prod的env Rails加载配置一次而不是听取更改.如果要构建自定义路由,则每次添加新路径时都必须重新加载路由:
Rails.application.reload_routes!
Run Code Online (Sandbox Code Playgroud)
此外,这不会将新路由附加到您的路由文件,并且任何服务器重新启动都会将路由器重置为默认值.但是,您可以将新路由保存到数据库,并在服务器启动时重新创建它们,或者routes.rb从ENV变量构建路径.
但是如果你想使用draw并只需要一条新路线:
Rails.application.routes.disable_clear_and_finalize = true #add this line
Rails.application.routes.draw do
#new route
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |