`
7thbyte
  • 浏览: 2218 次
  • 性别: Icon_minigender_1
  • 来自: 某个小角落
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于路由resources中指定非惯例名称controller的问题

阅读更多
由于网站中同时有blog,group等功能模块,因此就把controller分别命名为 GroupTopics,BlogTopics等

数据库表名叫 group_topics
Model名叫 group_topic

以上都没什么问题

希望通过 /groups/1/topics , /blogs/1/topics 这样的URL访问,于是就指定了controller的名称

在路由中指定了如下的嵌套resources:

    map.resources :groups do |group|
        group.resources :topics,:controller=>'GroupTopics'
    end


这个也没问题

不过写页面表单的时候问题来了

<%=link_to 'test',group_topic_url(@group,@topic)%>
# 这样可以正确指向/groups/1/topics/15这样的链接


但是,按照rails2里面那种简洁式写法:
<%=link_to 'test',[@group,@topic]%>
# 报错了:
# undefined method `group_group_topic_path' for #<ActionView::Base:0x727769c>


发现rails在这里是按照@topic对象的实际类名“GroupTopic”去寻找路由,于是
并不是去找:group_topic_path
而是去找:group_group_topic_path

当然找不到了。

于是很多地方都不能用rails2的简洁写法。感觉不太优雅。

想问的问题就是,rails2里面有没有什么机制能够使得根据对象自动获取路由时,不按照对象类名自动获取,而是可以特别指定?

如果没有这种机制,我想自己修改源代码实现,请高手们给一点提示?
分享到:
评论
1 楼 7thbyte 2008-04-10  
由于暂时没有好的解决方法,所有类似这样的地方都通过自己封装Helper来实现了。

看来想完全偷懒并不容易。

相关推荐

    解决vue路由name同名,路由重复的问题

    关于动态路由的问题,动态路由是指路由的path中包含了如`:id`这样的参数,这时可以使用`params`来传递相应的参数值。但是,当动态路由与name一起使用时,可能会导致跳转到根路由(即`path:'/'`的路由)的问题。解决...

    设置电脑指定路由选择

    设置电脑指定路由选择 指定电脑访问某一网站走固定路由,提高安全性

    华为信息与网络技术学院指定教材《路由与交换技术》.rar

    《路由与交换技术》是华为信息与网络技术学院指定的一本教材,主要涵盖了网络领域的核心概念,特别是关于路由器和交换机的运作原理及其在实际网络架构中的应用。这本书旨在为学习者提供深入理解网络通信机制的基础,...

    华三静态路由、单臂路由以及动态路由(RIP)配置

    首先,为 PC 和路由器接口分配 IP 地址,然后在路由器 RTB 上添加关于 PCA 网段的静态路由条目,并在 RTA 上添加关于 PCB 网段的静态路由条目。通过 `disp ip routing table` 命令查看路由表,确认路由条目存在,...

    静态路由默认路由动态路由RIP实验

    首先,静态路由是一种手动配置的路由方式,管理员需要为网络中的每个目标网络指定下一跳地址。这种方式适用于网络规模小、拓扑结构简单且变动不频繁的环境。静态路由的优点在于稳定性和安全性,但缺点是管理和维护...

    单臂路由静态路由默认路由备选路线结合实验.docx

    在云计算学习实验中,我们经常会遇到网络配置的问题,特别是如何设置单臂路由、静态路由以及默认路由,并结合备用路径来确保网络的稳定性和可靠性。以下将详细解释这些概念及其配置步骤。 **一、单臂路由(Single-...

    详解CISCO路由交换机的策略路由配置语句

    route-map命令可以指定路由策略的名称、描述、 Match条件和Set操作。Match条件用于指定路由策略的匹配规则,而Set操作用于指定路由策略的执行操作。 例如,在CISCO路由交换机中,我们可以使用以下命令来配置策略...

    linux双网卡 路由配置 访问特定ip网段走指定网卡

    linux双网卡 路由配置 访问特定ip网段走指定网卡,命令已实测

    Web前端框架应用:第5章 Vue路由-命名路由.pptx

    vue-router提供了一种隐式的引用路径,即命名路由,可以在创建Router实例的时候,在 routes 中给某个路由设置名称name值。通过一个名称来标识一个路由显得更方便一些,特别是在链接一个路由,或者是执行一些跳转的...

    qeephp中开启路由美化功能

    在qeephp框架的开发过程中,我们可能会遇到较为复杂的路由地址问题。这通常是因为未启用qeephp的路由美化功能所致。本文将详细介绍如何在qeephp框架中启用路由美化功能,使我们的应用程序更加美观、易于管理和维护。...

    ThinkPHP5路由完全指南

    在ThinkPHP5中,路由规则定义了URL与控制器(Controller)和操作(Action)之间的映射关系。基础的路由配置允许开发者通过简单的规则将URL路径与控制器方法绑定,如`'/:controller/:action'`,这里的`:controller`和...

    严格源路由选路于宽松源站路由选路

    宽松源路由选路在相邻两个必须经过的IP地址之间,允许存在其他非指定路由器,只要最终数据传输经过了指定的IP地址列表就可以。这种选路方式提高了数据传输的灵活性,有助于减少因为网络变化导致的传输中断风险。 ...

    静态路由和静态缺省路由配置 实验报告

    当路由器收到一个目标地址不在其路由表中的数据包时,会将数据包发送到静态缺省路由指定的下一跳地址。如果配置不当,静态缺省路由可能导致**路由环路**,即数据包在一个或多个路由器之间无限循环,消耗网络资源并...

    单臂路由和静态路由配置实验及详细命令

    单臂路由(Single-Arm Routing)和静态路由是网络配置中的基本概念,它们在构建小型或中型企业网络中尤其常见。下面将详细解释这两个概念,以及如何进行配置。 单臂路由是指在一个接口上同时处理LAN和WAN流量,通常...

    mvc3 路由调试

    MVC路由是ASP.NET MVC中的一种URL映射机制,它允许开发者定义URL模式并指定这些模式如何与控制器和动作方法关联。在应用启动时,路由配置在`Global.asax.cs`文件的`RegisterRoutes(RouteCollection routes)`方法中...

    ingress-nginx-controller(含镜像和代码).rar

    在 Kubernetes 集群中,ingress-nginx-controller 是一种常用的网络路由控制器,它基于 Nginx 实现,用于处理来自外部的入站流量,将请求转发到相应的后端服务。本文将深入探讨 ingress-nginx-controller 的核心概念...

    实验3-福建师范大学-CCNA基础实验之配置静态路由、默认路由与RIP(路由信息协议

    在IT行业中,网络路由是构建和管理网络的关键技术之一,特别是在网络工程师的CCNA认证学习过程中,理解并掌握路由协议的配置是至关重要的。本实验主题聚焦于“配置静态路由、默认路由与RIP(路由信息协议)”,这是...

    MVC的实现原理ControllerAction

    - **执行Action**:一旦找到匹配的路由规则,`UrlRoutingModule`就会根据该规则中的信息找到相应的Controller和Action,并执行Action方法。 #### 4. 示例代码分析 下面是一段关于`UrlRoutingModule`的示例代码,...

    k8s 新版本 部署 Ingress-nginx controller.doc

    deploy.yaml 文件中需要指定 Ingress-nginx controller 的镜像,例如 k8s.gcr.io/ingress-nginx/controller:v1.1.2 和 k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1。 deploy.yaml 文件样例: ``` #...

    ccnp 关于静态路由的笔记

    配置静态路由的基本命令是`ip route`,如标题和描述中提到的`ip route 0.0.0.0 0.0.0.0 serial 1/0 100.1.1.1`,这表示将所有未明确指定的目标网络的数据包通过Serial 1/0接口发送到100.1.1.1。这个命令用于配置指向...

Global site tag (gtag.js) - Google Analytics