Хорошо, таким образом, у меня есть оптимизация, которую я должен сделать на сайт направляющих, но отношения не являются стандартными. Таким образом, моя проблема, мне нужен 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)
Просто настройте связь между государством и городом с помощью специальных ключей. Примерно так:
В состоянии:
has_many :cities, :primary_key => :abbr, :foreign_key => :state
в городе:
belongs_to :state, :primary_key => :abbr, :foreign_key => :state