在我的应用中,网站有很多页面。我正在尝试将我的网址设置为
example.com/websites/1/pagename
我想要它,因此页面名称不需要全局唯一。他们只需要在他们所属的网站中保持独特。
这是我的路线到目前为止的样子
resources :websites do
resources :pages, :path => ''
end
我通过在页面控制器中更改此行来实现它。
def show
@page = Page.find_by(website_id: params[:website_id], id: params[:id])
end
然而,我更新了该行以使用友情ID ...
def show
@page = Page.friendly.find_by(website_id: params[:website_id], id: params[:id])
end
现在我收到错误undefined method name for nil:NilClass
,因为我有<% provide(:title, @page.name) %>
答案 0 :(得分:1)
不,你不需要。
要与命名空间一起使用的rails g controller websites/pages
。
您的网址:websites/1
id = 1
是唯一的。每个网站的pagename
也是唯一的
=&GT; websites/1/pagename
是唯一的
这很好:
websites/1/page_about_author
和
websites/2/page_about_author