我有以下型号:Rails嵌套的资源和路由 - 如何分解控制器?
- 后
- 标签
- TaggedPost(从邮政和标签,标签的has_many获得其关联:通过)
和我有以下routes.rb
文件:
resources :tags
resources :posts do
resources :tags
end
所以当我n例如/posts/4/tags
,这将使我在参数数组中设置post_id
值的情况下,将我带入标签控制器的索引操作。凉。
虽然我的问题是,现在我正在访问帖子下的嵌套标签资源,我应该点击标签控制器吗?或者我应该设置一些其他控制器来处理此时标签的嵌套特性?否则,我必须在标签控制器中增加额外的逻辑。这当然可以完成,但这是处理嵌套路由和资源的常见方式吗?我在为标签控制器index操作的代码如下:
TagsController.rb
def index
if params[:post_id] && @post = Post.find_by_id(params[:post_id])
@tags = Post.find_by_id(params[:post_id]).tags
else
@tags = Tag.order(:name)
end
respond_to do |format|
format.html
format.json {render json: @tags.tokens(params[:q]) }
end
end
我可以看到在这个控制器的代码变得越来越大,因为我计划了很多额外的与标签资源相关联的资源。如何解决这个问题的想法?
总结的问题:
- 如果资源被嵌套,如果嵌套的资源是通过代表的资源的嵌套性质不同的控制器去?这与我提供的代码示例中的正常控制器相反。
- 如果是这样,这些控制器应该如何命名和设置?
让我知道你是否需要更多信息。
这实际上回答了我的问题的核心......我想除此之外的物流真的取决于我强迫组织的需求。 – 2013-02-18 23:15:31
请为了你未来的同事(和你自己!),请阅读@lazel答案! – gfd 2016-12-13 16:00:27
打算在这个投票中花费一些辛苦赚取的点数。请添加嵌套控制器。 – Drenmi 2017-11-26 14:08:55