Я хочу, чтобы иметь возможность выбрать город из существующего массива городов.Сделать выбор выбранного помощника из набора параметров?
Я хранила города в массиве в контроллере ControllerName как глобальная переменная
$cities = ["city1"...."city20"]
, и я хочу, чтобы иметь возможность получить доступ к ним через: <%= p.select(:city, $cities{ |c| [c.name, c.id]}) %>
, но затем я получаю сообщение об ошибке undefined method name for 'city1'
.
Как я могу выбрать из этого существующего массива? Должен ли я сделать контроллер для городов?
Update # 1
Я пришел, чтобы сделать этот код
$cities=['city1',...'city20']
@city = Array.new
i = $cities.size
i.times do |x|
@city[x] = City.new
@city << $cities[x]
end
и вместо undefined method
названия»для "City1": String I got
неопределенный метод name' for "City20":String
PS : В таблице городов есть столбец с именем «имя», поэтому проблема не особенно там
Update # 2: Проблема решаемая
После прочтения немного в этом Rails документации я был в состоянии сделать небольшое улучшение в моем коде, и я на самом деле может решить проблема.
В моей форме, я редактировал код, который:
<%= p.select(:city, options_for_select(@cities_array))%>
И в моем ControllerName контроллер, я поставил это:
$cities.length.times do |x|
@city = City.new({:name => $cities[x]})
@city.save
end
@cities_array = City.all.map { |city| [city.name, city.id] }
И это все к нему.
Если у вас есть альтернативное решение, будь то более простое или сложное, отправьте его в качестве ответа.
Если «Город» - это модель, то лучше, если вы добавите свои города в качестве семян. Теперь ваш код будет добавлять в db все ваши города каждый раз, когда вы вызываете свое действие. – Aguardientico
Правильно, я снова боролся ** ** найти способ установить их раз и навсегда. я могу положить их как ** семена ** –
BTW: Самое простое решение (я думаю): 'p.select: city, City.pluck (: name,: id)' – Aguardientico