加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 当资源型号名称与路径或控制器不匹配时,如何编

发布时间:2020-12-16 22:21:06 所属栏目:百科 来源:网络整理
导读:我有一个名为ImplicitTest的模型.被称之为拥有一个名为Test的 Ruby对象,只是在Rails中打破了很多东西. 但是,我仍然希望将其作为一个RESTful资源作为测试(例如/ tests,/ test / 1 / edit等)来公开.此外,将控制器保留为TestsController将是非常好的,尽管这不重
我有一个名为ImplicitTest的模型.被称之为拥有一个名为Test的 Ruby对象,只是在Rails中打破了很多东西.

但是,我仍然希望将其作为一个RESTful资源作为测试(例如/ tests,/ test / 1 / edit等)来公开.此外,将控制器保留为TestsController将是非常好的,尽管这不重要.

我通过使用简单的资源:在我的routes.rb文件中进行测试,但是对于RESTful表单(例如<%= form_for @test ...>),这样做会导致@test对象为键入ImplciitTest,并尝试查找不存在的implicit_test_path.

我尝试添加form_for选项,但得出结论,为了使表单适用于新操作和编辑操作,没有一种单一的统一方式,要求form_for()使用不同的前缀进行路径名称查找.

所以我一直在尝试从路由方面解决这个问题.有没有一行我可以添加到路由文件,将允许我:

有一个叫ImplicitTest的模型
将路径设为/ test
>使用<%= form_for @test ...%>标签静止
>将控制器保存为TestsController(可选)

我知道我离开了黄金路径来做到这一点,但是Rails不让我使用Test作为模型名称,但这是用户希望在该资源的URL中看到的名称,所以我希望有是启用此功能的简单路由选项.

解决方法

所有您需要做的是在路由上设置:路径选项:
resources :implicit_tests,:path => '/test'

您仍然会使用标准的implicit_tests_path帮助器,所以您的代码不必分歧以更改URL方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读