Tôi đang cố gắng thiết lập Tên miền phụ trong Rails 3 trên Ryan Bates screencast on subdomains. Tuy nhiên nó không làm việc cho tôi. Tôi có các thiết lập sau:request.subdomain không được đặt trong Rails 3 trong khi định tuyến có điều kiện
# routes.rb
constraints(Subdomain) do
get 'devices' => 'devices#all'
end
# lib/subdomain.rb
class Subdomain
def self.matches?(request)
# binding.pry
request.subdomain.present? && request.subdomain == "admin"
end
end
Loading the url admin.localhost:3000/devices
nên con đường tôi để devices#all
, tuy nhiên tôi nhận được một lỗi định tuyến Routing Error No route matches [GET] "/devices"
Rõ ràng định tuyến của tôi không hoạt động.
tôi thiết lập một debug phiên pry
có nhận xét là ở trên, và nó được nhấn, vì vậy hạn chế của tôi đang làm việc, nhưng tôi nhận được kết quả như sau:
[1] pry(Subdomain)> request.subdomain
=> ""
[2] pry(Subdomain)> request.subdomains
=> []
[3] pry(Subdomain)> request.host
=> "admin.localhost"
Vì vậy, đường ray không được chọn lên các quản trị một phần của url và đặt nó vào biến tên miền phụ. Trong khi tôi có thể dễ dàng chỉ cần sử dụng giá trị máy chủ để lọc các tuyến quản trị, tôi muốn giữ cho mọi thứ sạch sẽ và chính xác.
Cách đường ray không đặt giá trị tên miền phụ?
Sửa
Cả jdoe và coreyward là đúng với câu trả lời của họ. Điều gì đã khiến tôi thất vọng là tôi cũng đang sử dụng pow
và xip.io
để truy cập trang web và gặp lỗi tương tự. Đó là lẻ bởi vì http://admin.app_name.192.168.1.68.xip.io/devices
có một tld> 1. Điều gì đã xảy ra là tên miền phụ cho xip
là admin.app_name.192.168.1.68
, cũng không được cung cấp logic phù hợp và không định tuyến.
> Cách đường ray không đặt giá trị tên miền phụ? Tôi nghĩ rằng nó vẫn còn Rack tại thời điểm đó. –
@OscarDelBen nó không phải.Đó là ActionDispatch 'request.inspect # =>
+1 để làm rõ thêm về Pow & Xip.io. :) – coreyward