những gì là sự khác biệt giữa resource
và resources
trong đường ray định tuyếnSự khác biệt giữa tài nguyên và tài nguyên trong định tuyến đường ray?
resource :geocoder
và
resources :posts
khác biệt thực sự giữa chúng là gì?
những gì là sự khác biệt giữa resource
và resources
trong đường ray định tuyếnSự khác biệt giữa tài nguyên và tài nguyên trong định tuyến đường ray?
resource :geocoder
và
resources :posts
khác biệt thực sự giữa chúng là gì?
Về bản chất, tài nguyên định tuyến là khi tài nguyên cung cấp khả năng hành động cho bộ điều khiển.
http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use
Nếu một nguồn tài nguyên số nhiều được sử dụng như một cách để xử lý yêu cầu chung vào bất kỳ mục, sau đó một nguồn tài nguyên số ít là một cách để làm việc trên các mục hiện trong tầm tay. Vì vậy, nói cách khác, nếu tôi có một bộ sưu tập của Táo, để lấy một quả táo cụ thể, tôi phải nói cho bộ định tuyến "Táo" những gì táo để lấy bằng cách gửi ID của quả táo. Nếu tôi đã có một Apple, sau đó một ID là không cần thiết.
Chú ý sự khác biệt giữa hai bằng cách nhìn vào những hành động (hoặc các tuyến đường) chúng ta có: nguồn
Trong ví dụ của bạn:
http://guides.rubyonrails.org/routing.html#singular-resources
Đôi khi, bạn có một nguồn lực mà khách hàng luôn tìm kiếm mà không tham khảo ID. Ví dụ: bạn muốn/hồ sơ luôn hiển thị tiểu sử của người dùng hiện đã đăng nhập. Trong trường hợp này, bạn có thể sử dụng một tài nguyên số ít để ánh xạ/cấu hình (thay vì/profile /: id) thành hành động hiển thị .
Một cách hay để xem đó là tài nguyên không có hành động chỉ mục, vì nó được cho là chỉ một.
tôi nghĩ chỉ là chế độ xem chỉ mục.
cũng đã xảy ra sự cố với định tuyến với người trợ giúp tài nguyên và người trợ giúp biểu mẫu. cá nhân, tôi sử dụng cú pháp:
resources :someresource, except: :index
để tránh reported bugs.
Tài Số ít:
Đôi khi, bạn có một nguồn lực mà khách hàng luôn tìm kiếm mà không cần tham khảo một ID. Ví dụ: bạn muốn /profile
luôn hiển thị hồ sơ của người dùng hiện đã đăng nhập.
Hoặc, thường trong đăng nhập người dùng hiện của bạn thuộc về một tổ chức duy nhất, vì vậy để goto trang hồ sơ của anh/cô tổ chức có thể có hai tuyến đường
#1
/organizations/:id
#2
/organization #simply
Ở đây, việc thực hiện sau ý nghĩa hơn; không phải nó? bạn sẽ có được các đối tượng tổ chức từ hiệp hội
# in organizations#show
@organization = current_user.organization
Để xác định tài nguyên số ít như bạn sử dụng resource
phương pháp: Ví dụ
# in routes.rb
resource :organization
tạo Sáu tuyến đường khác nhau trong ứng dụng của bạn, tất cả các bản đồ với bộ điều khiển tổ chức:
trong khi, bạn xác định tài nguyên số nhiều bằng cách sử dụng resources
phương pháp
resources :organizations
nhầm lẫn của tôi: là những gì các điểm trong việc tạo ra nguồn lực đặc biệt; cho phép nói rằng chúng ta đã định nghĩa 'resource: geocoder'; có nghĩa là chúng ta sẽ có một bản ghi 'geocoder' duy nhất trong toàn bộ' bảng' được gọi là 'bộ mã hóa địa lý '? – illusionist
Trong liên kết đến bài viết (đã được cập nhật từ lâu kể từ khi tôi đăng bài này), họ thực sự đã đưa ra một ví dụ tốt. Một tài nguyên số ít được gọi là/profile (thay vì/profile: id), sẽ hữu ích để luôn hiển thị hồ sơ của người dùng hiện đang đăng nhập. Vì vậy, một trình mã hóa địa lý số ít có thể thuộc về vị trí của người dùng hiện tại, nơi mà các trình mã địa lý số nhiều có thể thuộc về một tập hợp các địa điểm lân cận. Nó sẽ tùy thuộc vào bạn nếu bạn muốn đưa mã địa lý của riêng bạn vào bộ sưu tập đó. – sksallaj