这些是我的模特:
class Company < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :company
has_many :prices
end
class Price < ActiveRecord::Base
belongs_to :product
end
我在路由中将它们定义为嵌套资源
resources :companies
namespace :company do
scope ":company_id" do
resources :products do
resources :prices
resources :production_capabilities
end
end
end
我想将控制器和视图放在与该结构相匹配的目录中
app/controllers/companies_controller.rb
app/controllers/company/products_controller.rb
app/controllers/company/product
app/controllers/company/product/prices_controller.rb
只要我在公司内部创建产品目录,我就会尝试调用
Company.find(1).products
我得到了
NoMethodError: undefined method 'quoted_table_name' for Company::Product:Module
有人知道我做错了什么吗?
答案 0 :(得分:1)
Rails文档明确建议我们不要将资源嵌套超过1级:
http://guides.rubyonrails.org/routing.html#nested-resources
你会得到这样的网址:
/company/1/product/4/price/5
那不漂亮。尽量避免它。