目前,我有一些属于程序的步骤:
map.resources :procedures, :has_many => :steps这对我来说很好,我得到了类似于/procedures/3/steps/5的URL。
但是,假设我想再添加一个层,属于步骤的数字,以获得以下结果:/procedures/3/ steps /5/steps/1
撇开URL不谈,我到底该怎么做呢?
编辑:也许我不应该把它放在一边,,,,数字只是图像的容器,我将在步骤中显示,所以这并不像用户将实际“访问”任何图形,我只需要从图形中获取图像。
发布于 2009-08-05 02:55:40
map.resources :procedures do |procedure|
procedure.resources :steps do |step|
step.resources :figures
end
end如果您需要像/ routes /这样的路由,那么使用:
map.resources :procedures, :shallow => true do |procedure|
procedure.resources :steps do |step|
step.resources :figures
end
end在你看来,这就像是:
<%= link_to "Figure", figure_url(@procedure, @step, @figure) -%>发布于 2009-08-05 00:34:44
这个博客帖子比我的头顶更好地解释了它。基本上,您可以在定义路线时使用前缀选项来获取您要寻找的内容。
发布于 2009-08-05 02:36:38
从你的评论来看,我认为你是对的:你永远不需要寻找数字.你永远也不想不必要地让你的路线复杂化。
听起来你要走的最远的就是表演你的舞步.你只需向ActiveRecord索取这一步的数字列表。也就是说,你会有
class Step < ActiveRecord::Base
has_many :figures
end和
class Figure < ActiveRecord::Base
belongs_to :step
has_many :images #perhaps?
end但是对于路由,您只需要关心将被RESTfully请求的资源--在本例中,它看起来像您的procedures及其相关的steps。你在问题中列出的路线在我看来是正确的!
https://stackoverflow.com/questions/1230595
复制相似问题