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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 当资源型号名称与路径或控制器不匹配时,如何编写路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为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方案.

猜你在找的Ruby相关文章