Tôi đã bắt đầu một dự án Rails gần đây và quyết định sử dụng các bộ điều khiển RESTful. Tôi đã tạo bộ điều khiển cho các thực thể chính của mình (chẳng hạn như Quốc gia) và thêm index
, new
, edit
, create
, show
, update
và delete
. Tôi đã thêm map.resources :country
vào các tệp tuyến đường và cuộc sống của tôi tốt.Tại sao tôi cần phải làm việc chăm chỉ hơn để làm cho ứng dụng Rails của tôi phù hợp với kiến trúc RESTful?
Sau khi quá trình phát triển diễn ra một chút, tôi bắt đầu gặp phải sự cố. Đôi khi tôi cần thêm hành động trong bộ điều khiển của mình. Đầu tiên là hành động search
trả lại các tùy chọn cho hộp tìm kiếm tự động hoàn thành ưa thích của tôi. Sau đó, sự cần thiết phải hiển thị các nước theo hai cách khác nhau ở những nơi khác nhau trong ứng dụng (dữ liệu được hiển thị khác nhau quá, vì vậy nó không chỉ là hai lần xem) - Tôi đã thêm hành động index_full
. Sau đó, tôi muốn hiển thị một quốc gia theo tên trong URL, không phải theo id vì vậy tôi đã thêm hành động show_by_name
.
Bạn làm gì khi bạn cần hành động vượt tiêu chuẩn index
, new
, edit
, create
, show
, update
, delete
trong một bộ điều khiển RESTful trong Rails? Tôi có cần phải thêm (và duy trì) các tuyến đường thủ công trong tệp routes.rb (mà là một cơn đau), chúng có đi trong bộ điều khiển khác không, tôi có trở thành không ổn định hoặc tôi thiếu cái gì cơ bản không?
Tôi đoán tôi đang yêu cầu, tôi có cần phải làm việc chăm chỉ hơn và thêm hành động vào tệp routes.rb của tôi để có đặc quyền là RESTful không? Nếu tôi không sử dụng map.resources
để thêm các tiện ích REST, các tuyến đường chuẩn :controller/:action, :controller/:action/:id
sẽ xử lý mọi thứ một cách tự động.
Dường như có rất nhiều sự nhầm lẫn về ý nghĩa của REST do các phương thức mặc định của đường ray. REST không bị giới hạn trong các phương thức đó, và thực sự không phải là về các phương thức cụ thể đó. Tôi cũng không hiểu tại sao bạn cảm thấy bạn phải làm việc chăm chỉ hơn khi thêm các phương thức bổ sung vào bộ điều khiển. – jshen