2012-07-02 1 views
1

나는이 코드를 가지고있을 때 레이아웃 파일을로드 :시나하지 URL은이 개 하위 레벨

# Users page 
get '/admin/users' do 
    @title = "Admin - Users" 
    erb :admin_users 
end 

뷰가 렌더링 될 때, 나는 ERB 파일에 HTML을 얻을 수 있지만, 레이아웃 파일을 렌더링하지 않습니다. 경로를 '/ 사용자'로 변경하면 모든 것이 잘 렌더링됩니다. 뭐라 구요? 나는 원래 사용자의 ERB 페이지를 'views/admin'하위 디렉토리에 넣었는데, 그 방법에 대한 샘플 코드를 찾은 후이 문제를 해결했습니다. 그게 이유라고 생각했지만 오히려 문제를 일으키는 URL로 보입니다. 다른 사람이 이것을 쳤거나 해결 방법을 알고 있습니까?

다른 모든보기는 잘 작동합니다. 이 URL 패턴을 시도한 첫 번째보기입니다. 나는 또한 이것을 시도했지만 아무런 영향을 미치지 않았다.

# Users page 
get '/admin/users' do 
    @title = "Admin - Users" 
    erb :admin_users, :layout => :layout 
end 

도움을 주시면 감사하겠습니다. 감사. 당신이 admin_users보기의 하위 디렉토리를 사용하는 경우

답변

0

, 당신은 정말 views/admin/users.erb로 저장 한 후 '/ 관리/사용자의 할 ERB

GET으로 렌더링한다 :'관리자/사용자의 끝

아마도이 문제가 이미 귀하의 문제를 해결할 것입니다. 도움이 더 필요하면 알려주세요.

layout.erb 파일의 위치와 다른 관리보기의보기 디렉토리를 설정할 때 문제가 발생할 수 있습니다. views/admin/ 폴더에 더미 layout.erb을 넣으려고 했습니까?

+0

모두에서 레이아웃을 사용 views/admin/admin_users.erb에 템플릿을 렌더링합니다. users.erb를 views/admin 폴더에두고 'admin/users'에서 '/ admin/users'를 렌더링 할 경로를 설정하면 동일한 결과를 얻었습니다. 레이아웃 페이지가 없어도 괜찮 았습니다. 그런 다음 해당 폴더에 layout.erb를 복사하여보기와 동일한 폴더에서 볼 수 있다고 생각했지만 문제가되지 않았습니다. 나는 또한 복사 된 레이아웃 파일의 이름을 변경하고 erb : 'admin/users', layout => admin_layout을했는데 그 역시 중요하지 않았다. –

1

동일한 문제가 발생했습니다. 레이아웃에서 내 자산의 경로를 확인하십시오. 전에 /을 추가해야합니다.

<link href='/stylesheets/application.css' rel='stylesheet' type='text/css'>이 정확합니다.

0

정확한 오류를 표시하지 않았습니다. 나는 그것이 "admin_users.erb"템플릿에 "No such file or directory"라고 가정합니다.

"erb"호출에 옵션이 없으므로 Sinatra에 템플릿을 찾을 위치를 알려야합니다. 이것은 단지 나를 위해 일했습니다

# Users page 
get '/admin/users' do 
    @title = "Admin - Users" 
    erb :'admin/admin_users', :layout_options => { :views => 'views/admin' } 
end 

그것은 내가 처음에 뭘하려 무엇을 설명의 views/admin/layout.erb

관련 문제