ruby-on-rails-3 – Rails嵌套资源和路由 – 如何分解控制器?
我有以下型号:
>帖子 而且我有以下的route.rb文件: resources :tags resources :posts do resources :tags end 所以当我浏览到/ posts / 4 /标签时,这将使我在参数数组中设置了post_id值的标签控制器的索引动作.凉. 我的问题是,现在我正在访问帖子下的嵌套标签资源,是否应该点击标签控制器?或者我应该设置一些其他控制器来处理标签的嵌套本质?否则,我必须在标签控制器中构建额外的逻辑.这当然可以完成,但这是处理嵌套路由和资源的常用方法呢?标签控制器的索引操作中的代码如下: 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 我可以看到这个控制器中的代码越来越大,因为我计划与标签资源相关联的许多额外的资源.关于如何打破这个想法? 问题总结: >如果一个资源是嵌套的,嵌套资源是否应该通过代表资源嵌套性质的不同控制器?这是反对正常的控制器,因为我在我提供的代码示例. 如果您需要更多信息,请告诉我们. 解决方法
所有您正在使用嵌套资源正在更改路由URL.您只需要做的就是确保将正确的id(在你的案例中)传递给标签控制器.最常见的错误是无法找到*** ID.
如果您不将一个配置文件路由嵌套到用户路由中,则会显示为这样 domain.com/user/1 domain.com/profile/2 当你把路线嵌套就可以了 domain.com/user/1/profile/2 这就是它正在做的一切.没有其他的.你不需要额外的控制器.嵌套路由只是为了看起来.允许您的用户遵循关联.嵌套路由最重要的是确保将link_to设置为正确的路径. 何时不嵌套:它将是user_path和profile_path 当嵌套时,您将需要使用user_profile_path. 耙子路线是您的朋友,以了解路线如何变化. 希望它有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |