RoR을 배우고 있는데 현재 사이트 (PHP/WP 내장)를 정확한 기능 (또는 가능한 한 최선)으로 복제하기로 결정했습니다.RoR routes.rb - 모두 루트입니까?
저는 프로젝트 모델을 가지고 있으며 각각은 그들 만의 '쇼'페이지를 가지고 있습니다. 또한 모든 URL을 슬러그로 루트로 라우트하는 페이지 컨트롤러가 있습니다. 예 :/test-page,/about,/contact
그러나 프로젝트 슬러그를 "루트"로 지정할 수있는 방법이 있습니까? 그래서/projects/: slug 대신에/project-name1,/project-name2 etc가 될 것입니다.
저는 Ruby와 RoR에 익숙하지 않아서 분명히 뭔가 빠져있는 것 같아요. 이 작업을 수행하는 방법을 볼 수있는 유일한 방법은 현재 슬러그 매칭 시스템을 기반으로 슬러그 유형에 적합한 컨트롤러를 끌어 들이기 위해 컨트롤러를 작성하는 것입니다. 따라서 페이지 모델에서/page가 일치하면 해당 페이지가 사용됩니다. 그렇지 않으면 프로젝트.
내가 잘못한 것 같아서 어쨌든 컨트롤러를 지시 할 수 있는지 확신 할 수 없습니까?
이걸로 올랐지 만 불완전한 것 같습니까?
include Rails.application.routes.url_helpers
class SiteController < ApplicationController
attr_accessor :project, :page
def show
check = -> m { m.where(:title => params[:slug]).first }
if (@project = check.call(Projects)).present?
render 'projects/show'
elsif (@page = check.call(Pages)).present?
render 'pages/show'
else
raise ActionController::RoutingError.new 'Not Found'
end
end
end
이것은 실제로 Rails 컨트롤러처럼 보이지 않습니다. – Mohamad
다른 방법으로이 작업을 수행 할 수 있습니까? –