클라이언트에서 응용 프로그램의 워크 플로를 완료하는 단일 URL을 요청했습니다 : example.org/task/:token
. 여기서 :token
은 해당 작업의 고유 ID입니다. index
행동 :token
에서 TaskController
내레일 여러 컨트롤러에 대한 3 개의 단일 URL
는 작업 개체를 쿼리하는 데 사용되며,보기는 작업의 현재 상태에 따라 렌더링 : 모든 상태보기를 렌더링하기위한보기와 논리가
def index
@task = Task.where(token: params[:token])
render @task.state.to_s
end
보기 자체에 있습니다 (웃기는 !!).
작업 상태를 사용하여 렌더링 할 컨트롤러 동작을 결정할 수 있도록 리팩토링하고 싶습니다. 나는 render template: '#{state}/action'
으로 그것을 할 수있다. 그러나 이것은 컨트롤러 동작 로직을 실행하지 않습니다. 아직 컨트롤러 로직에 문제가 있습니다.
I 작동 this solution을 발견했습니다,하지만 조금 추한 및 레일의 일부를 나누기 "마법"(명시 적으로 뷰를 렌더링해야합니다.)입니다
내 질문에, 이러한 목표를 달성하기 위해 더 나은 방법이있다 Rails 내에서 단일 URL을 유지하면서 새 URL로 리디렉션하지 않습니까?
아마 클라이언트 측 자바 스크립트가 옵션입니까? – tmaximini