2013-07-11 3 views
0

레일 코드에 문제가 있습니다. 입력을 기반으로 새로운 위치를 생성하려고합니다. 는 그래서 만드는 방법은 다음과 같습니다정의되지 않은 로컬 변수 또는 메소드`admins_root_path '

def create 
    @location = Location.new(params[:location]) 

    respond_to do |format| 
     if @location.save 
     # format.html { redirect_to @location, notice: 'Location was successfully created.' } 
     format.html { redirect_to admins_root_path, notice: 'Location was successfully created.' } 
     format.json { render json: @location, status: :created, location: @location } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @location.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

그것은 다음과 같은 오류 출력 끝 :

undefined local variable or method `admins_root_path' for #<LocationsController:0x007fa18917f278> 
app/controllers/locations_controller.rb:47:in `block in create' 
app/controllers/locations_controller.rb:45:in `create' 

어떤 도움은 매우 도움이 될 것입니다.

+1

가'레이크의 출력을 게시하시기 바랍니다는 – vee

+0

목록 당신의 루트 파일 PLZ를 routes'. –

답변

1

admins_root_path에는 경로가 정의되어 있지 않습니다. 다음은 이름이 지정된 일치 경로를 정의합니다.

match 'path/to/admin/root' => 'admins#root_action', :as => 'admins_root' 

그러나 잘못된 경로를 호출하는 것일 수도 있습니다. 예를 들어, 당신이 당신이 할 거라고하는 경우, admins#index 행동 노선하려고하는 것을 가능 다음

format.html { redirect_to admins_path, notice: 'Location was successfully created.' } 
+0

고마워, 그게 다야 !! – Fry

1

위치가 저장 될 때 전달하는 경로 'admins_root_path'에 오류가있는 것 같습니다. 콘솔에 rake routes을 입력하면 사용 가능한 모든 경로 목록이 표시됩니다.

0

내 생각 엔 admin_root_path 있어야하거나 root_path 구성한 방법에 따라 점이다 사용할 수있는 모든 경로를보고 싶으면 그 중 하나를 사용하고 있는지 확인하려면 @lflores의 제안을 따라야합니다.

0

이 문제도 만남.
내가 조사한 내용 : routes.rb에 문제가 있습니다. 나는 자원을 쓰지 않았다. 리소스를 추가하고 문제를 해결했습니다.

내 잘못된 코드 :

Rails.application.routes.draw do 
    namespace :admin do 

    end 
    resources :jobs 
    root 'jobs#index' 
end 

내 오른쪽 코드

Rails.application.routes.draw do 
    namespace :admin do 
    resources :jobs 
    end 
    resources :jobs 
    root 'jobs#index' 
end 
관련 문제