2010-07-25 5 views
1

좋아, 그래서 내가 레일스 사이트를 만들 필요가있는 최적화가 있지만 관계는 종래와 다르다. 그래서 제 문제는 상태에서 갈 때 option_groups_from_collection_for_select가 필요하고 도시는 아래에 있습니다. 이는 일반적으로 주에서 많은 도시와 도시가 주에 속한 경우에 달성 될 수 있습니다. 문제는 관계가없고 상태가 테이블에 하드 코딩되어 있다는 것입니다. 예를 들어 :Rails option_groups_from_collection_for_select 이상한 방식으로

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) 

답변

2

단지를 만들기 위해 얻을 필요가 모르는 맞춤 키로 주와 도시 간의 관계를 설정하십시오. 그래서 같이 :

belongs_to :state, :primary_key => :abbr, :foreign_key => :state 
: 도시에서

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

: 상태에서

관련 문제