【问题标题】:Rails route for nested model嵌套模型的 Rails 路线
【发布时间】:2012-06-04 15:19:05
【问题描述】:

我有一个嵌套的 rails 模型:

# app/models/frontend/item.rb
class Frontend::Item < Item
end

当我打电话时

form_for(@frontend_item)

它会尝试转到 '/frontend/items' 路径。

有没有办法让它转到'/items'(没有继承的'/frontend')

【问题讨论】:

  • 您似乎混淆了资源和模型。模型不是嵌套的,而是包含的。因此,您的前端包含项目。

标签: ruby-on-rails ruby-on-rails-3 nested-routes


【解决方案1】:

你可能已经这样做了,但你尝试过

rake routes

【讨论】:

  • 不确定查看路线会有什么帮助..你能详细说明一下吗?
【解决方案2】:

有一个很好的例子可以准确地说明您在 rails 指南中想要什么:

http://guides.rubyonrails.org/routing.html#limits-to-nesting

~查尔斯~

【讨论】:

  • 我没有看到这样的例子。请注意,我在路由中嵌套模型而不是资源。
【解决方案3】:

您已将 Frontend::Item 明确命名为与 Item 不同的模型。因此,frontend_item 正确路由到 /frontend/items/:id

要覆盖它,将以下行添加到您的路由文件:

# routes.rb
match 'item/:id' => 'Frontend::Item#show'

请注意,这将与您的 Item 模型的路由冲突,因此您应该删除该路由。

【讨论】:

    【解决方案4】:

    解决方案是创建一个范围部分:

    # config/routes.rb
    scope :module => "frontend", :as => 'frontend' do
      resources :items
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多