클릭 가능한 맵의 여러 전환 대상 화면을 하나의 작업으로 표시하는 방법

3781 단어 Rails

소개



jQuery 플러그인인 JapanMap이라는 것을 자작 앱에 도입했지만, 홋카이도 지방에서 오키나와 지방까지의 9개의 전환처 화면을 어떻게 라우팅이나 액션으로 표현하는가가 문제가 되었다. Rails는 5.2.6을 사용.

덧붙여 본 기사는 【라우팅 설계】 하나의 액션으로 복수의 뷰를 전환해 표시하는 방법 를 참고로 하겠습니다.



시도한 것



우선, 다음과 같이 라우팅을 써 보았다.

config/routes.rb
Rails.application.routes.draw do
  get "/region/hokkaido" => "homes#hokkaido"
  get "/region/tohoku" => "homes#tohoku"
  get "/region/kanto" => "homes#kanto"
  get "/region/chubu" => "homes#chubu"
  get "/region/kinki" => "homes#kinki"
  get "/region/chugoku" => "homes#chugoku"
  get "/region/shikoku" => "homes#shikoku"
  get "/region/kyusyu" => "homes#kyusyu"
  get "/region/okinawa" => "homes#okinawa"
end

분명히 비효율적입니다. 거기서 여러가지 조사한 결과, 처음에 든 기사 를 발견. 조속히 적용해 본다.

해결 방법



라우팅 파일을 다음과 같이 변경하고, params[:region] 에 지역명을 넣어, home 컨트롤러의 region 액션에 처리시키기로 했다.

config/routes.rb
Rails.application.routes.draw do
  get "/region/:region" => "homes#region", as: "region"
end

controllers/homes_controller.rb
class HomesController < ApplicationController
  def region
    render "region/#{params[:region]}"
  end
end

이렇게 함으로써 크게 기술량을 줄였다. 각 도도부현의 뷰에 대해서도 똑같이 하면 좋았겠지만, 복잡하게 생각해 미주하게 된다. . 그것은 또 다른 기사에서.

좋은 웹페이지 즐겨찾기