2013-06-27 31 views
5

Đây là cách không gian tên chung trông như thế nào.Thêm tiền tố vào trình trợ giúp tuyến đường được đặt tên theo không gian tên

namespace :admin do 
    resources :posts 
end 

Và nó tạo ra một tuyến đường có tên như thế này;

new_admin_post_path 

Đây là câu hỏi của tôi; làm thế nào tôi có thể thêm một tiền tố (như "mới" trong ví dụ này) vào một tuyến đường được đặt tên theo không gian tên?

Giả sử định nghĩa tuyến đường của tôi thích định dạng này;

namespace :admin do 
    get 'post/new' => 'posts#new', as: 'post' 
end 

Và nó tạo ra một tuyến đường được đặt tên như;

admin_post_path 

Tôi muốn thêm "mới" tiền tố để định tuyến được đặt tên này và làm cho nó trông giống như new_admin_post_path và tôi không muốn sử dụng resources.

+0

trình điều khiển bài đăng của bạn có nằm trong không gian tên quản trị không? Nếu có thì bạn có thể đạt được nó từ cách đầu tiên mà bạn đã viết. –

+0

Có. Nhưng tôi không muốn làm điều này bằng cách sử dụng hoặc tùy biến với phương thức 'resources'. –

Trả lời

9

Chỉ cần thử mã trong các tuyến đường.

namespace :admin, as: '' do 
    get '/post/new' => 'posts#new', as: 'new_admin_post' 
end 

Nếu bạn không muốn đặt không gian tên quản trị là 0, thì bạn có thể thực hiện. cho rằng bạn cần phải đặt tuyến đường đó ra khỏi không gian tên: khối quản trị trong các tuyến đường

namespace :admin do 
    # your other routes 
end 

get '/admin/post/new' => 'admin/posts#new', :as => 'new_admin_post' 
+0

Có các tuyến đường khác được ánh xạ dưới không gian tên 'admin' nên không có điểm nào để thả các tiền tố" quản trị "và bỏ qua từng phần tử một cách thủ công. Nếu có thể tôi muốn có thể thêm tiền tố vào một tuyến đường được đặt tên dưới các không gian tên, như 'tài nguyên' có thể làm. –

+0

vui lòng kiểm tra câu trả lời đã chỉnh sửa. –

+1

Tôi không thích ý tưởng bắt buộc phải thoát khỏi không gian tên nhưng tôi nghĩ tôi sẽ đi với giải pháp này ngay bây giờ. Tôi đã kiểm tra khá nhiều tùy chọn và đọc một số mã nguồn nhưng nó tốn khá nhiều thời gian cho một vấn đề như thế này. –

Các vấn đề liên quan