2012-04-17 43 views
7

Tôi đang phát triển một ứng dụng dựa nhiều vào tên miền phụ. Nó có một ứng dụng được nhúng trong ứng dụng (một mô-đun) sẽ là một phần phụ trợ để quản lý ứng dụng. Hãy đặt tên nó là kong.Đường ray: Cách kiểm tra tên miền phụ bằng RSpec

Tôi có mã này trong các tuyến đường tập tin của tôi:

constraints :subdomain => "kong" do 
    scope :module => "kong", :as => "kong" do 
    resources :clients 
    end 
end 

Làm thế nào tôi có thể kiểm tra tuyến đường này để khi tôi viết một cái gì đó như sau rồi nó lấy từ các tên miền phụ và chỉ từ các tên miền phụ:

get :index 

Trả lời

5

Trong đơn vị thử nghiệm tôi sử dụng một cái gì đó như thế này để thiết lập các request.host đến từ một tên miền phụ:

def get_sub(sub = "one") 
    @request.host = "#{sub}.local.me" 
end 

Cá nhân tôi sẽ đặt nó vào tệp spec_helper.rb và tham chiếu khi bạn cần.

Đối với bạn, trong những bài kiểm tra, bạn đang thiết sub để bằng "kong" lẽ như

before :each do 
    get_sub("kong") 
end 

joker này cũng có một câu trả lời quá, mà tôi tìm thấy sau khi through google

+7

Tại sao bạn gọi phương pháp này 'get_sub' khi nó đặt giá trị rõ ràng? Ngoài ra, tại sao rút ngắn nó? 'set_subdomain' hoặc' stub_subdomain' sẽ là tên tuyệt vời cho phương thức này. –

+2

Tôi đoán trong thế giới hoàn hảo, tôi đã gọi nó là 'set_subdomain' nhưng vẫn còn là một giả thuyết, câu trả lời vẫn hoạt động. OP có thể thay đổi phương thức thành bất kỳ thứ gì anh ta chọn. – pjammer

+5

lưu ý rằng điều này sẽ không hoạt động trong các thông số định tuyến, vì '@ request' sẽ là nil – lulalala

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