나는 City
테이블에 저장된 도시 목록을 가지고 있습니다. 이 예에서 resource.name
, city.name
을 통해 액세스 할 수있는 동적 경로를 생성한다고 가정 해 보겠습니다.레일스는 friendly_id gem을 사용하여 리소스 이름별로 액세스합니다.
/amsterdam
또는 /berlin
을 방문하고 싶습니다. 방법?
정보를 원하시면 friendly_id 보석은 이미 슬러그 칼럼을 가지고 있습니다.
나는 City
테이블에 저장된 도시 목록을 가지고 있습니다. 이 예에서 resource.name
, city.name
을 통해 액세스 할 수있는 동적 경로를 생성한다고 가정 해 보겠습니다.레일스는 friendly_id gem을 사용하여 리소스 이름별로 액세스합니다.
/amsterdam
또는 /berlin
을 방문하고 싶습니다. 방법?
정보를 원하시면 friendly_id 보석은 이미 슬러그 칼럼을 가지고 있습니다.
당신이 올바르게 설정 friendly_id 있다고 가정 :
match '/cities/:name' => 'cities#show'
또는 friendly_id 보석에 대한 빠른 시작에서
resources :cities
: 또한
class City < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: :slugged
end
:
여기# If you're adding FriendlyId to an existing app and need
# to generate slugs for an existing model, do this from the
# console, runner, or add a Rake task:
City.find_each(&:save)
이 거기에 RailsCast 경우 : 최종 사용자의 경로 파일의에서 http://railscasts.com/episodes/314-pretty-urls-with-friendlyid?view=asciicast
이 추가 : 다음
match '*id' => 'cities#show
당신의 CitiesController에 :
def show
@city = City.find(params[:id])
# ...
end
이것이 도움이 될지 모르겠다. 그러나 나는 내 프로젝트에서 사용하는 것에 대한 요점을 정리했다. 그것은 주로 내 루트 파일로 무엇을 위해 일하는
https://gist.github.com/1908782
는 일반적으로 매우 간결하다.
존재하지 않는 경로를 방문하려고 시도하면 어떤 경로에도 맞지 않습니다.
부수적 인 점은 4.0 릴리스에서 깨졌습니다. 이 글을 쓰는 시점에서 다음을 gemfile에 넣어야합니다.
gem 'friendly_id', :git => 'git://github.com/norman/friendly_id.git'
또는
gem 'friendly_id', :git => 'https://github.com/norman/friendly_id.git'
희망이 도움이됩니다.