Ruby on Rails 中的路由别名



在我的项目中,我有一个名为City的类,我创建了别名BirthCity和ResidenceCity。我想以正确的方式更改 routes.rb 文件。

我试过添加

resources :birth_cities,  :path => :cities, as: => :cities 
resources :residence_cities,  :path => :cities, as: => :cities 

每次我打电话给birth_city_path时,我都希望它被引用到city_path。但是我收到以下错误:

syntax error, unexpected => (SyntaxError)
...ties,  :path => :cities, as: => :cities 
...                             ^~

有什么想法吗?我也尝试像这样修改它:

resources :birth_cities,:path => :cities,:as 'cities' 

但无论如何它都不起作用。

编辑:现在sintax是相应的,但我得到另一个错误

undefined method `birth_cities_path' for #<#<Class:0x00007f4b3cfcd6c0>:0x00007f4b21303950>

对于以下行

<%= guiFieldAutocomplete(f, :birth_city_id, { data: { autocomplete_source: birth_cities_path(col: "json_recordset_name") }}) %>
as: => :cities 

应该是

:as => :cities 

哈希文本的语法

{ :a => 3, "b" => 4 }

带有符号键的哈希文本的新语法

{ a: 3, b: 4 }

这等于

{ :a => 3, :b => 4 }

只是更短

你有点混合这两种语法

您似乎对新旧哈希语法感到困惑。

您应该替换此代码:

resources :birth_cities,  :path => :cities, as: => :cities
resources :residence_cities,  :path => :cities, as: => :cities 

resources :birth_cities,  :path => :cities, :as => :cities
resources :residence_cities,  :path => :cities, :as => :cities 

as: => :cities更改为:as => :cities

在此处阅读有关此语法的更多信息:https://stackoverflow.com/a/44005425/4797110

最新更新