在routes.rb: resource :my_model
我得到一些自动生成的路线。他们中的一些人有一个名字(就像用#39;关键字手动定义它们一样),但有些人不知道......所以我怎么能给他们起名字呢? 或者它可能是一个提示'通过铁路给我,我不应该使用这些路线?
答案 0 :(得分:1)
当你说“名字”时,你指的是什么,当你运行耙路线时,前缀是什么?许多HTTP请求(即补丁,放置,删除)由控制器处理,然后如果您使用的是javascript,则会重定向到另一个路径或更改当前页面的DOM,因此它们不会有与它们关联的前缀,因为这些请求没有关联的视图。
答案 1 :(得分:0)
使用单一资源时,除索引路由外,将生成所有CRUD路由。如果您希望按预期使用它们,则不需要这些路径的名称。你打算使用这些路线是什么意思?
根据文档:
一条独特的资源丰富的路线会产生这些帮助:
new_resourceName_path返回/ re / new
edit_geocoder_path返回/地理编码器/编辑
geocoder_path返回/地理编码器
请通过以下方式发布您的输出:bundle exec rake routes
您会注意到show和create controller actions共享相同的路径,唯一的区别是一个需要POST请求而另一个需要一个GET请求。这是Rails提供的一些魔力,允许您使用映射到不同操作的类似命名路由。
答案 2 :(得分:0)
尝试使用resources
代替resource
。如果您需要PATCH
,PUT
或DELETE
的帮助程序,只需使用show
操作的帮助程序(您将从resources
获取)和specify the HTTP method with method:
第二个答案here对您的resource
电话有一个不错的解释。
答案 3 :(得分:0)
这些路由期望一个不同的请求方法(这意味着请求中有额外的数据),并且不需要单独的名称,只需使用泛型global_preferences_path
,例如 - 在链接中为不显眼的js设置方法:
<%= link_to 'Set preference', global_preferences_path(some_parameter:'foo'),
confirm:'Are you sure?', method: :put %>
或使用html表格