2008-09-18 22 views
12

Tôi đã theo dõi cùng với railscast về plugin restful_authentication.Đổi tên bộ điều khiển trong Rails và xóa nội dung được tạo ra

Ông đề nghị cách chạy lệnh:

kịch bản phiên/tạo chứng thực người dùng

Mà tôi đã làm, và tất cả mọi thứ được tạo ra "tốt", nhưng sau đó phiên sẽ không hoạt động. Kiểm tra các trang web một lần nữa, ông đề cập đến một tiêu chuẩn đặt tên và niêm yết đang được cập nhật trong đó nói:

script/tạo chứng thực người sử dụng phiên

Với phiên được thành số nhiều.

Vì vậy, bây giờ tôi đã session_controller.rb với một SessionController trong nó, nhưng tôi đoán bằng cách đặt tên tiêu chuẩn, nó đang tìm kiếm SessionsController, khiến mã thất bại với lỗi "NameError trong SessionsController # tạo ra"

Tôi thấy vấn đề, điều này khá rõ ràng, nhưng những gì tôi không biết là, làm cách nào để khắc phục vấn đề này mà không cần tái tạo nội dung? Có cách nào để đảo ngược quá trình tạo ra để xóa bỏ mọi thay đổi do thế hệ tạo ra không?

Tôi đã thử đổi tên tệp thành sessions_controller bằng lớp e SessionsController, nhưng điều đó không thành công.

Khi viết bài này, tôi đã giải quyết được vấn đề của riêng mình. Tôi đã đổi tên phiên thành các phiên trong tệp tuyến đường dưới dạng map.resource và đổi tên thư mục xem từ phiên thành phiên và cập nhật session_path trong tệp html.erb thành sessions_path.

Vì vậy, tôi đã giải quyết được sự cố của mình, nhưng câu trả lời của tôi về việc xóa nội dung đã tạo vẫn còn. Có thể không kích hoạt nội dung không?

Trả lời

14

Thực tế, script/destroy hoạt động với bất kỳ trình tạo máy phát điện nào - máy phát điện hoạt động bằng cách đọc tập lệnh sắp xếp để tạo tệp; script/destroy chỉ cần đọc tập lệnh đó ngược lại và xóa tất cả các tệp được tạo, miễn là bạn cung cấp cho nó cùng một đối số mà bạn đã chuyển đến script/generate.

Để tổng hợp: script/destroy authenticated user session sẽ xóa tất cả các tệp đã tạo cho bạn, sau đó bạn có thể chạy script/generate user sessions mà không gặp sự cố.

1

Bạn chỉ có thể quay lại bản sửa đổi trước đó trong phiên bản lật đổ và bắt đầu lại, phải không? đúng? :-)

đường ray có script/destroy cho các công cụ 'không kích hoạt', nhưng tôi nghi ngờ rằng nó sẽ chỉ hoạt động đối với các tuyến đường ray đi kèm chứ không phải plugin xác thực an toàn.

Tôi muốn nói đặt cược tốt nhất của bạn là tìm trong các file (hoặc grep -R nếu bạn không sử dụng một IDE) - tìm tất cả những gì liên quan đến SessionController cũ của bạn và thay đổi nó

2

Tôi chưa bao giờ cố gắng script/destroy, nhưng nếu bạn đang hoàn nguyên các thay đổi mà bạn vừa tạo, lệnh tạo sẽ cung cấp cho bạn danh sách các tệp được thêm và thay đổi được thực hiện. Nếu bạn đang sử dụng hệ thống kiểm soát phiên bản của một số loại, trạng thái đang chạy/diff cũng có thể giúp ích.

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