Направляющие option_groups_from_collection_for_select странным способом

Хорошо, таким образом, у меня есть оптимизация, которую я должен сделать на сайт направляющих, но отношения не являются стандартными. Таким образом, моя проблема, мне нужен option_groups_from_collection_for_select для движения от состояния, и города ниже. Это может обычно достигаться если состояние has_many города и Город belongs_to состояние. Проблемой являются отношения, не там, и состояние является hardcoded в таблице. Например:

select * from states;
+----+----------------------+------+
| id | name                 | abbr |
+----+----------------------+------+
|  2 | Alabama              | AL   |
|  3 | Alaska               | AK   |
|  4 | Arizona              | AZ   |
|  5 | Arkansas             | AR   |


select * from cities;
+-------------------------+-------+----------------------+
| name                    | state | permalink            |
+-------------------------+-------+----------------------+
| Orlando                 | FL    | orlando-fl           |
| West Palm Beach         | FL    | west-palm-beach-fl   |
| Tampa                   | FL    | tampa-fl             |
| Ft. Lauderdale          | FL    | ft-lauderdale-fl     |
| Jacksonville            | FL    | jacksonville-fl      |
| Atlanta                 | GA    | atlanta-ga           |

Таким образом, option_groups_from_collection_for_select ожидает State.all и City.all с отношениями, но я не знаю то, что я должен заставить все данные делать

option_groups_from_collection_for_select(@state, :cities, :name, :id, :name, 3)
1
задан John Topley 25 July 2010 в 21:15
поделиться

1 ответ

Просто настройте связь между государством и городом с помощью специальных ключей. Примерно так:

В состоянии:

has_many :cities, :primary_key => :abbr, :foreign_key => :state

в городе:

belongs_to :state,  :primary_key => :abbr, :foreign_key => :state
2
ответ дан 2 September 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: