gpt4 book ai didi

ruby - 具有单一资源的多态 url

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:08 27 4
gpt4 key购买 nike

使用以下路由设置时我得到了奇怪的输出:

  resources :warranty_types do
resources :decisions
end
resource :warranty_review, :only => [] do
resources :decisions
end

我有很多 warranty_types 但只有一个 warranty_review (因此是单一的路线声明)。决策与两者多态相关。我只有一个决策 Controller 和一个 _form.html.haml 部分来呈现决策表单。

这是 View 代码:

= simple_form_for @decision, :url => [@decision_tree_owner, @decision.becomes(Decision)] do |form|

warranty_type url 如下所示(用于新决定):

/warranty_types/2/decisions

warranty_review url 如下所示:

/admin/warranty_review/decisions.1

我认为因为 warranty_review id 无处可去,它只是作为扩展名附加到末尾。

有人可以解释这里发生了什么以及我如何能够解决它吗?

我可以通过尝试检测 warranty_review 类并将 @decision_tree_owner 替换为 :warranty_review 来解决这个问题,这会生成正确的 url,但这很困惑。我原以为路由会足够聪明,可以意识到 warranty_review 是一个单一的资源,从而丢弃 URL 中的 id。

顺便说一下,这是 Rails 3 :)

最佳答案

显然这是一个长期存在的 Rails 错误,其中 polymorphic_url 无法从路由设置中知道资源是否是单一的:

https://rails.lighthouseapp.com/projects/8994/tickets/4077-wrong-redirect-after-creation-of-nested-singleton-resource-using-responder

即使只有一个 warranty_review,我也打算使用非单一途径。归根结底,这只是美学。

关于ruby - 具有单一资源的多态 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269867/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com