2011-01-16 27 views
5

Tôi muốn tất cả các trang của tôi trong ứng dụng 2.3 Rails tôi đã url bắt đầu bằng:url Prefix trong ứng dụng Rails

www.example.com/app/ 

và tôi đã viết bài này trong routes.rb những dòng sau:

# I named the first part of the url ':appl' 
map.root :appl => "app", :controller => "home" 

# Default routes 
map.connect ':appl/:controller/:action/:id' 
map.connect ':appl/:controller/:action/:id.:format' 

Tất cả đều hoạt động tốt, ngoại trừ map.resources, nơi tôi có

map.resources :pages 

và bây giờ bất cứ nơi nào tôi có edit_page_path hoặc page, url được tạo không đúng, vì app không được chèn vào đầu. Tôi đã thử với namespacescope, như tôi đã thấy here in chapter 2.6, nhưng không thành công.

Tôi nên làm như thế nào? :appl có phải là một ý tưởng tồi không?

Trả lời

0

Đây là cách tôi đã viết trong routes.rb:

map.resources :pages, :as => 'app/pages' 

Bây giờ, edit_page_path và những người khác trở lại con đường đúng đắn, bắt đầu bằng 'app'

6

Nếu bạn đang triển khai trên hành khách, bạn chỉ cần cài đặt (trong cấu hình máy chủ web của bạn):

RailsBaseURI /app

Và sau đó trong cấu hình của ứng dụng của bạn:

config.action_controller.relative_url_root = '/app' 

Bạn không nên cần phải lo lắng về bất kỳ công cụ phụ uri nào ngoài đó. Nó chỉ nên làm việc. Xem Passenger documentation để biết thêm chi tiết.

Đối lai, bạn có thể sử dụng tùy chọn --prefix

script/server mongrel -P /app 
+0

Tôi hiện không sử dụng Hành khách. –

+0

Ngăn xếp triển khai của bạn là gì? Có thể có một giải pháp có sẵn ở đó. –

+0

- Tôi sử dụng Mongrel. –

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