Маршрутизирует псевдоним в Ruby on Rails - PullRequest
0 голосов
/ 29 марта 2019

В моем проекте у меня есть класс City и я создал псевдонимы BirthCity и ResidenceCity.Я хочу правильно изменить файл rout.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' 

, но он все равно не работает.

РЕДАКТИРОВАТЬ: теперь синтаксис неверный, но я получаю еще одну ошибку

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

для следующей строки

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

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Похоже, вы запутались между новым и старым синтаксисом хеширования.

Вы должны заменить этот код:

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 to :as => :cities

Подробнее об этом синтаксисе можно прочитать здесь: https://stackoverflow.com/a/44005425/4797110

0 голосов
/ 29 марта 2019
as: => :cities 

должно быть

:as => :cities 

синтаксис для хеш-литералов

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

новый синтаксис для хеш-литералов с символьными ключами

{ a: 3, b: 4 }

это равно

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

чуть короче

вы как бы смешиваете эти два синтаксиса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...