처음에는 현재 솔루션이 추한 것이 아니고 잘못이 아니라 최악의 경우 보행자라고합니다. 그러나 관련된 모든 모델과 협회를 보지 않고서는 일반적인 대답 만 할 수 있습니다.
먼저 국가 모델, 아마도 좋은 생각이지만 자동차 모델과 어떻게 관련이 있습니까?
이 작업을 수행 할 수 있습니다 :
이
class Country << ActiveRecord::Base
has_may :cars
end
class Car << ActiveRecord::Base
belongs_to :country
end
이
@cars = Country.find('USA').cars
을 즉, 당신이 국가를 선택하고 특정 국가에 속한 모든 차량을 얻을 수에 의해 의미를 지원 OR 것
, 당신은 할 수
class Car << ActiveRecord::Base
has_one :country
end
class Country << ActiveRecord::Base
end
이렇게하면 다른 의미가 가능합니다.
@country = Car.find('Jeep').country
점은 앱에있는 다음 앱의 의미가 의미를 지원하도록 연결을 정의하고자하는 쿼리의 의미를 생각하는 것입니다. 매우 간단한 연결을 게시했습니다. 여러 개의 복잡한 연결로 끝날 수도 있습니다. 데이터베이스 및 관련 모델을 쿼리하는 방법에 따라 달라집니다.
UPDATE
당신은 게시 : (: 국가//) : 가 내 경로를 자동차처럼 뭔가 할 car_id, 당신은 특정 car_id를 알고있는 경우, 이해가되지 않습니다
, 당신 필터링이나 추가 검색이 필요 없습니다.
사운드는 이러한 URL을 원하는 같이 :
/cars # all cars
/cars/:country # all cars in country
/car/:id # a specific car
첫 번째와 세 번째 경로는 거기에 아마, 당신은 자동차 편안하고 경로의 전체 세트를 정의한 즉
설정/routes.rb 가정
resources :cars
경로에 추가하기 만하면됩니다.RB :
GET '/cars/:country' => 'cars#index'
그런 다음 응용 프로그램/컨트롤러/cars_controller.rb의 :
이
def index
if params[:country]
@cars = Car.where("country_id = ?", params[:country])
else
@cars = Car.all
end
end
이 각 자동차 레코드가 country_id 속성이 이에 설정된 관계를 가정합니다. 즉, 예를 들어, 여러 가지 방법에 대해 올 수 있습니다 :
class Car < ActiveRecord::Base
belongs_to :country
end
내 차 테이블이 country_id 속성이 말한다, 나는 같은 것을 수행 할 수 있습니다
@car = Car.find (1001)
를
"차는 #{@car.country.name}에 있습니다."
감사합니다. 것은 내가 길을 자동차/: 나라/: 자동차가되기를 바란다. 자동차가 국가 즉 국가/: 국가/자동차에 속하기 때문에 쉽게 할 수 있습니다. 그러나 내가 원하는 것을 원하지 않습니다. 내 응용 프로그램에 대한 importent 것은 URL 차가 모든 자동차 (자동차 # 색인), URL cars/: 카테고리가 특정 국가 (mabybe cars # by_country?) 및 ofcourse cars/: country/: 자동차의 모든 자동차를 표시한다는 것입니다. (cars # show). 국가 모델을 만드는 것이 가장 좋겠지 만 협회 및 경로에 가장 적합한 솔루션이 무엇인지 알 수 없습니까? –
/cars/: 국가 및/자동차/: id도 작동 할 수 있습니다. 그 것이/cars/: country/: id는 더 많은 논리를 느낍니다. 사용자가/cars /로 이동하여 자동차를 선택하면/car/: id는 RESTful이라고 느낍니다. 그러나 사용자가/cars/: 국가로 이동하여 자동차를 선택하면/cars/: country/: id는 RESTful이라고 느낍니다. 가장 좋은 솔루션은 무엇입니까? 그리고 내가/cars/: country와 함께 간다면 어떻게 그걸 성취 할 수 있겠습니까? –
내가 car/: id와 같은 단 하나의 액션에 대해 단 하나의 이름을 사용하는 것이 RESTful이 아니라는 것을 조사한 후에. 더 많은 아이디어를 환영합니다. –