2012-12-20 13 views
0

최신 Rails 프로젝트에 백본을 사용하려고하고 있으며 직면 한 최신 문제는 경로입니다. 내 레일 라우팅을위한 백본 라우터가 "새"경로를 올바르게 라우팅하지 않습니다.

, 나는 사용자가 로그인 한 후/제품 (index_products_path)로 이동합니다.

을 그래서, 백본에서 다음 경로를 만들었습니다. 다른 "백서"(초대장과 같은)에 대한 다른 백본 라우터를 만들 계획입니다.

class Sample.Routers.ProductsRouter extends Backbone.Router 

    routes: 
    ""   : "index" 
    ":id"  : "show" 
    ":id/edit" : "edit" 
    "new"  : "newProduct" 

"mydomain.com/products"인덱스 뷰를 가져 오십시오. "mydomain.com/products/#/1"또는 "mydomain.com/products#1"은 제품 ID가 1 인 프로그램보기를 표시합니다.

이제 "새로운"경로에 대한 문제입니다. "mydomain.com/products#new"를 가리켜 "새로운"보기를 표시하려고하면 서버는 id = new 인 제품을 찾을 수 없다는 불평을합니다.

왜 이런 일이 벌어 질지 알 수 없습니다. 오류 스택을 추적하면 Sample.Routers.ProductsRouter.ProductsRouter.show이 호출되고 있음을 알 수있었습니다. 백본 라우터가 올바르게 라우팅하지 못하는 것 같아요. 레일스 서버가 ID = new .......로 제품에 대한 "GET"요청에 응답하고 있습니다. 백본 구성 오류 일 수 있습니까?

도움이 될 것입니다, 대단히 감사하게 될 것입니다!

답변

2

백본이 첫 번째로 일치하는 경로를 실행합니다. 그래서 귀하의 경우, 먼저 new을 입력하십시오.

routes: 
    ""   : "index" 
    "new"  : "newProduct" 
    ":id"  : "show" 
    ":id/edit" : "edit" 
+0

빠른 응답을 보내 주셔서 감사합니다. 이제는 사소한 것들을 알지 못해서 어리 석다. : – yangtheman

+0

자바 스크립트 개체는 순서가 지정되지 않았으므로 아무 것도 작동하지 않을 수도 있습니다. 자바 스크립트 개체는 순서가 지정되지 않으므로 순서가 실수로 표시됩니다. 경로를 특정 순서로 확인해야하는 경우 다음을 사용하여 수동으로 추가해야합니다. (http://backbonejs.org/#Router-route) 전화. –

+0

@muistooshort 표준에 따라 모든 실제 브라우저가 현재 순서대로 객체를 반복하지만 (크롬은이 버그를 가지고있었습니다. 2008 년에 내가 옳다면). 현재 표준에 충실하려면 forename을 가진 경로 변수를 "네임 스페이스"하는 것이 가장 좋습니다. 예 :'product/: id' –

관련 문제