【问题标题】:How Does Rails Routes Handle ArraysRails 路由如何处理数组
【发布时间】:2013-08-27 15:11:47
【问题描述】:

我有一个控制器操作,它需要一车物品,如果购买成功,则运行此操作:

redirect_to "/delist/#{session[:pending_purchase]}"

其中 :pending_purchase 是一组商品 ID 号(已添加到购物车的商品),delist 会从商店中删除所述商品,以便不再购买。

我的问题是:redirect_to 方法可以处理数组吗?有没有办法在我的路由中进行设置,以便将数组传递给 delist 控制器?或者有没有更好的方法来一起完成这一切?

【问题讨论】:

    标签: ruby-on-rails session controller routes


    【解决方案1】:

    简短回答:不可以。redirect_to 只能处理字符串、命名 url 帮助程序以及将转换为命名 url 的实例变量。

    长答案:您的情况不正确。

    在这种情况下,您将 id 放入 url 是错误的。您可以简单地再次重定向到购物车网址。商品已从购物车中删除,因此新购物车显示更新后的商品。为什么在 url 中需要物品 id?

    【讨论】:

    • 我的购物车创建的订单项与产品列表本身无关。 delist conrtoller 实际上与购物车无关。 delist 控制器仅跟踪将订单项添加到购物车时与哪些产品 ID 相关联。因此,当购买完成时,它会从我的活动库存中删除这些物品。 delist 控制器实际上使用 API 来联系另一个电子商务商店并将其从那里删除,以便我的库存保持同步。
    • @Davey,也许我还没有完全理解你的情况。但是,根据您的评论点,您不能在 Cart 模型中创建一个新列,将其序列化以保存 id 吗?那应该简单得多。
    • 是的,这样会更有意义。感谢您的建议,我一定会执行的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多