我在我的routes.rb中有这个。
scope '/admin' do
root :to => 'home#index'
resources :posts do
scope :information, :controller => 'information' do
match 'description'
end
end
end
这给了我
post_description /admin/posts/:post_id/description(.:format) {:action=>"description", :controller=>"information"}
它会导致我想要的控制器,但我需要在我的网址中包含信息,如下所示:
/admin/posts/:post_id/information/description(.:format)
我尝试使用命名空间,但需要地图结构信息/信息
我应该如何实现我想要的,我应该使用哪种路线策略? 我读了Rails routing guides 2次,但我仍然无法弄明白。 感谢。
答案 0 :(得分:2)
这个怎么样:
scope '/admin' do
root :to => 'home#index'
resources :posts do
resource :information, :only => [] do
get 'description'
end
end
end
[编辑]
更像REST:REST /资源丰富的事情是构建可以提供信息的资源。因此资源information
将提供有关GET的所有信息。如果描述是您获得的实际资源,那么它应该是posts/:id/description
。如果描述是与信息链接的资源,那么您的路径确实是指定的。现在我们在这种情况下做的是构建我们的资源更像Atom,并链接到相关项目。 E.g。
<post>
<title>....</title>
<content> ... </content>
<link rel="'self' href='link-to-self' />
<link rel='information' href='link-to-information' />
</post>
在构建REST-API时,如果url变得很长并且嵌套嵌套嵌套,我们会认为它是一种气味。提供链接还允许探索API。
不确定这是否有帮助。