Rails 5路由:为什么“ redirect_to @model”与“ redirect_to model_path(@ model.id)”不同?

问题描述 投票:0回答:1

我正在使用Rails 5应用,并且有一个名为@ offer的模型。在“商品”控制器中,我有一个操作要将我重定向到从数据库中获得的特定商品(在下面的示例中,商品ID = 14。)

在开发环境中工作,如果我在控制器中使用redirect_to offer_path(@ offer.id)] >>,则浏览器会在https://dev.example.com/offers/14 URL中正确显示要约。请注意URL中的dev部分。到目前为止一切顺利。

但是,如果我在控制器中使用redirect_to @offer

,浏览器将尝试打开https://example.com/offers/14 URL(即production URL),并且页面显示错误(< [我们很抱歉,但有些不对劲。如果您是应用程序所有者,请检查日志以获取更多信息。)我想使用

redirect_to @offer

,但是首先,我认为我需要理解为什么一个重定向方法的行为与另一个不同。感谢您的见解。我正在使用Rails 5应用,并且有一个名为@offer的模型。在“商品”控制器中,我有一个操作要重定向到我从数据库中获得的特定商品(...中的要约ID = 14,]]
ruby-on-rails-5 rails-routing
1个回答
0
投票
这个问题很旧,但我仍在回答,因为它将来可能会帮助其他Rails用户。

在商品管理中,redirect_to @offer或redirect_to offerspath(@offer)将解析为相同的路径/ offers /:id,无论它是生产还是开发。

© www.soinside.com 2019 - 2024. All rights reserved.