Rails 콘솔에서 경로 도우미 액세스
4391 단어 rails
Rails에서 경로는 들어오는 URL을 컨트롤러 작업에 매핑합니다. 애플리케이션에 대한 경로를 정의할 때 경로 이름에서 상대 또는 절대 URL을 빌드하기 위한 경로 및 URL 도우미도 가져옵니다. 예를 들어
users
에 config/routes.rb
리소스가 있다고 가정합니다.resources :posts
이 경로는 보기에서 사용할 수 있는 메서드
posts_path
를 생성합니다. 간단한 경로의 경우 도우미의 출력을 추측할 수 있습니다. 예를 들어 posts_path
도우미는 URL을 반환합니다 /posts
. 복잡한 경로, 특히 중첩된 경로의 경우 헬퍼를 사용하여 보기를 렌더링할 때까지 URL을 파악하기 어려울 수 있습니다.이 게시물은 Rails 콘솔에서 직접 URL 및 경로 도우미의 출력을 확인하는 간단한 방법을 보여줍니다. 또한 모델에서 이러한 도우미에 액세스하는 방법도 살펴보겠습니다.
다음은 단일 경로가 있는 일반적인 경로 파일입니다.
# routes.rb
Rails.application.routes.draw do
get '/posts/:id/preview', to: 'posts#preview', as: "preview_post"
end
이 경로는 URL
posts/:id/preview
을 PostsController#preview
작업에 매핑합니다. 또한 preview_post
옵션을 사용하여 경로 이름을 as
로 지정했습니다. 따라서 Rails는 자동으로 preview_post_path
및 preview_post_url
헬퍼를 생성합니다.애플리케이션에서 경로를 보려면
rails routes
명령을 실행할 수 있습니다.> bin/rails routes -g preview
Prefix Verb URI Pattern Controller#Action
preview_post GET /posts/:id/preview(.:format) posts#preview
그러나 이것은 경로가 생성할 URL을 알려주지 않습니다. 이를 위해 응용 프로그램을 나타내는
app
개체에서 도우미 메서드를 호출할 수 있습니다. Rails는 부팅 시 app
객체에 모든 도우미를 추가합니다. 따라서 콘솔에서 명명된 경로 도우미의 출력을 확인할 수 있으며 이는 개발 중에 매우 편리합니다.irb(main):018:0> post = Post.first
irb(main):019:0> app.preview_post_path(post)
=> "/posts/5/preview"
모델에서 도우미 액세스
기본적으로 도우미 메서드는 컨트롤러, 보기 및 메일러에서 액세스할 수 있습니다. 다른 위치(예: 모델)에서 자동 생성 도우미 메서드에 액세스해야 하는 경우 클래스에
Rails.application.routes.url_helpers
를 포함하여 수행할 수 있습니다.class Post < ActiveRecord::Base
include Rails.application.routes.url_helpers
def link
post_path(self)
end
end
Post.find(1).link # => "/posts/1"
도움이 되길 바랍니다.
Reference
이 문제에 관하여(Rails 콘솔에서 경로 도우미 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/software_writer/accessing-route-helpers-from-rails-console-41b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)