Rails 콘솔 세션에서 경로 인식
blogs_path와 같이 더 많은 정보를 원하는 라우터 도우미가 있다고 가정 해 보겠습니다. 콘솔에서 그 뒤에있는지도 문을 어떻게 찾습니까?
생성 및 인식을 시도했지만 'config / routes.rb'가 필요한 후에도 인식 할 수없는 메서드 오류가 발생했습니다.
URL-to-controller / action 매핑 및 그 반대를 수동으로 확인하는 방법을 보여주는 Zobie의 블로그에 예제와 함께 좋은 요약이 있습니다 . 예를 들어
r = Rails.application.routes
경로 객체에 액세스하기 위해 (몇 년 된 Zobie의 페이지는를 사용하라고 말 ActionController::Routing::Routes
했지만 이제를 선호합니다 Rails.application.routes
). 그런 다음 URL을 기반으로 라우팅을 확인할 수 있습니다.
>> r.recognize_path "/station/index/42.html"
=> {:controller=>"station", :action=>"index", :format=>"html", :id=>"42"}
주어진 컨트롤러 / 작업 / 매개 변수 조합에 대해 생성되는 URL을 확인합니다.
>> r.generate :controller => :station, :action=> :index, :id=>42
=> /station/index/42
고마워, 조비!
Rails 3.2 앱의 콘솔에서 :
# include routing and URL helpers
include ActionDispatch::Routing
include Rails.application.routes.url_helpers
# use routes normally
users_path #=> "/users"
기본적으로 (귀하의 질문을 올바르게 이해했다면) UrlWriter 모듈을 포함하는 것으로 요약됩니다.
include ActionController::UrlWriter
root_path
=> "/"
또는 콘솔의 호출 앞에 앱을 추가 할 수 있습니다. 예 :
ruby-1.9.2-p136 :002 > app.root_path
=> "/"
(이것은 모두 Rails v. 3.0.3입니다.)
다음과 같은 오류가 표시되는 경우
ActionController::RoutingError: No route matches
작동해야 할 곳에서 Spree가 경로를 앞에 추가하는 것과 같은 작업을 수행하는 rails gem 또는 엔진을 사용할 수 있습니다. 콘솔에서 경로를 보려면 다른 작업을 수행해야 할 수 있습니다.
spree의 경우 이것은 경로 파일에 있습니다.
Spree::Core::Engine.routes.prepend do
...
end
그리고 @ mike-blythe가 제안한 것처럼 작동하려면 이전에 generate
또는 recognize_path
.
r = Spree::Core::Engine.routes
프로젝트 디렉토리에서 route 명령을 실행하면 라우팅이 표시됩니다.
rake routes
이것이 당신이 염두에 둔 것입니까?
참조 URL : https://stackoverflow.com/questions/2778074/recognize-routes-in-rails-console-session
'programing' 카테고리의 다른 글
Docker의 상위 시스템에서 컨테이너로 디렉토리 마운트 (0) | 2021.01.16 |
---|---|
빈 IEnumerator 반환 (0) | 2021.01.16 |
node.js에서 전역 변수를 사용하는 방법은 무엇입니까? (0) | 2021.01.16 |
JavaScript에서 MD5 파일 해시를 생성하는 방법은 무엇입니까? (0) | 2021.01.16 |
Iphone SDK는 외부를 클릭하여 ipad에서 Modal ViewController를 닫습니다. (0) | 2021.01.16 |