2012-02-04 2 views
1

나는 padrino 프로젝트가 있습니다.padrino : 동일한 이름의 하위 앱 및 컨트롤러가 중복 URL을 생성합니다.

"사용자"라는 하위 응용 프로그램을 만들었습니다.

또한 사용자라는 모델과 라우팅을 처리 할 사용자라는 컨트롤러가 있습니다.

Users.controllers :users do 

이 가진 문제는 URL이 생산되고하고 있습니다에 반응하고 있다는 것이다

app.com/users/users/index

나는 각 동작으로 이동하지 않는 한 그것을지도에 넣으십시오

get :index, :map => '/' do 

더 좋은 방법이 있습니까?

저는 app.rb에 액션을 넣고 싶지 않습니다. 나는 별거하는 것을 좋아한다.

Users.controllers :users do 
    map '/' 
end 

같은 일이 있나요 내 응용 프로그램의 루트 URL에 대응하고자 기본 컨트롤러를 생성하기 위해 수행 할 수있는 명명 규칙이 존재인가?

내가 번들로 포함 된 users_index 등

보석을 사용할 수 있도록 사용자의 컨트롤러에 보관하고 싶습니다 : 나는 각 작업에 대한 경로를지도해야하는 경우

activemodel (3.2.1) 
activerecord (3.2.1) 
activesupport (3.2.1) 
arel (3.0.0) 
bcrypt-ruby (3.0.1) 
builder (3.0.0) 
bundler (1.0.21) 
haml (3.1.4) 
http_router (0.10.2) 
i18n (0.6.0) 
mail (2.3.0) 
mime-types (1.17.2) 
multi_json (1.0.4) 
padrino (0.10.6.c) 
padrino-admin (0.10.6.c) 
padrino-cache (0.10.6.c) 
padrino-core (0.10.6.c) 
padrino-gen (0.10.6.c) 
padrino-helpers (0.10.6.c) 
padrino-mailer (0.10.6.c) 
polyglot (0.3.3) 
rack (1.4.1) 
rack-protection (1.2.0) 
rack-test (0.6.1) 
rake (0.9.2.2) 
sass (3.1.13) 
shoulda (2.11.3) 
sinatra (1.3.2) 
sinatra-flash (0.3.0) 
sqlite3 (1.3.5) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10) 
tzinfo (0.3.31) 
url_mount (0.2.1) 

내 앱 이름이 내 컨트롤러 이름과 일치 할 때 컨트롤러에서 괜찮습니다. 컨트롤러를 통해 모든 액션에 대해 기본 또는 루트 경로를 설정하는 방법이 있는지 궁금합니다.

감사

답변

0
#padrino-core-0.10.6.c/lib/padrino-core/application/routing.rb 

#around line 655 
#method parse_route 

#right after unless controller.empty? i added the following which works in my case 

    if controller.last.downcase == app_name.downcase and map.blank? 
    controller = controller.slice(0, -2) unless controller.length == 1 
    controller_path = controller.join("/") 
    path.gsub!(%r{^\(/\)|/\?}, "") 
    map = File.join(controller_path, path) 
end 

그래서 지금은 경로를 처리하는 응용 프로그램라는 사용자와 컨트롤러라는 사용자가 있다면, 난 그냥/새로운 사용자 또는/사용자/새 등 대신에/사용자/사용자/말할 수있다.

다시 말하지만, 저는이 문제를 다루는 가장 좋은 방법인지 잘 모릅니다. 각 경로에서 수동으로지도를 설정할 수는 있지만 매우 성가시다.

DAddYE가이 점을 고려하여 더 나은 권장 사항을 제공 할 수 있기를 바랍니다.

0

직접 사용할 수 있습니다

get "/" do 
end 

당신은 당신의 bundle show를 게시 할 수 있습니까?

마지막으로 gem padrino, '0.10.6.c'을 사용해 볼 수 있습니까?

+0

요청한 정보를 포함하도록 원래 게시물을 업데이트했습니다. – Mike

+0

시도했습니다. get '/ new'do ... end 그러나지도를 만들지 않으면/users/users/new 을 사용해야합니다. get : new, : map => '/ new'do 작품 – Mike