由于嵌套路由,创建新公司不再有效

时间:2018-02-03 17:45:03

标签: ruby-on-rails routes nested-resources ruby-on-rails-5

我的应用有一个Company modelUser models,我一直在研究path/url结构,并设法让我的工作如何使用嵌套资源,如代码所示下面。

我已使用FriendlyIDcompany_namesusernames添加到模型中,这些模型一切正常。

路径现在看起来我希望他们看起来如何:www.mydomain.com/company_name/username

的routes.rb

resources :companies, :path => '/', only: [:show] do
    # constraints has been added for usernames that include a '.' 
    resources :users, :path => '/', only: [:show], :constraints => { :id => /.*/ }    
end

问题:我仍然需要添加新公司记录的功能,但它将不再有效。我知道这是由于改变路线,但我不明白如何解决这个问题,因为它一直在观看

www.mydomain.com/companies/new作为username'新'的未知用户。

如果有人能指出我正确的方向或给我一点努力,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您已设置only: [:show],这意味着只允许使用show方法。

要创建公司,需要添加:new:create

像这样only: [:new, :create, :show]

注意:

在路由文件中添加或更改smth后,请务必使用rake routes,Rails 5也支持rails routes

您可以看到可用的路线!