2012-02-24 28 views
9

Tôi muốn sử dụng số lượt xem được tạo của tôi (với lệnh rails g devise:views users) từ app/views/users.Không thể ghi đè lên chế độ xem đá quý mặc định mặc định

Tôi đã có thiết lập các tùy chọn từ app/initializers/devise.rb:

config.scoped_views = true 
config.default_scope = :user 

nhưng nó vẫn sử dụng mặc định đưa ra quan điểm từ /usr/lib/ruby/gems/1.8/gems/devise-2.0.4/app/views/devise/

Vì vậy, những gì tôi nên làm gì? Cảm ơn.

+0

Chế độ xem của bạn trong 'ứng dụng/lượt xem/người dùng' hoặc 'ứng dụng/lượt xem/người dùng/phiên'? –

+0

Tom L, [yes] (http://stackoverflow.com/questions/9432946/cant-override-default-devise-gem-views#comment11927719_9432946) – user973254

+0

Xin lỗi, bạn đã trả lời trong khi tôi thay đổi câu hỏi của mình vì đó là câu hỏi của nash. –

Trả lời

2

Để có chế độ xem đăng nhập tùy chỉnh, khi bạn đang sử dụng tài nguyên phát triển mặc định User, tôi nghĩ tất cả những gì bạn cần là tạo app/views/devise/sessions/new.html.erb. Và, chỉ trong giây lát, hãy quên giao diện CRUD. Và hoàn tác các cài đặt config/initializers/devise.rb này. Chỉ cần xem bạn có thể làm việc đó không.

+0

Sự kết hợp đó hoạt động, nhưng tôi không thể hiểu tại sao tôi không làm việc. Tôi thực sự cần phạm vi làm việc. – user973254

+0

Vì vậy, đó là làm việc. Mát mẻ. Nếu bạn muốn CRUD tất cả những gì bạn cần là bộ điều khiển và khung nhìn thông thường. Tôi không nghĩ rằng bạn cần phải lộn xộn xung quanh với phạm vi, trừ khi bạn có nhiều hơn một loại người dùng nghĩ ra. –

+0

Nhưng nó vẫn thú vị như thế nào tôi có thể nhận được phạm vi làm việc. – user973254

9

Tôi đã gặp sự cố tương tự này và tôi đã mất rất nhiều thời gian để tìm ra. Đặt config.scoped_views = true là bước đầu tiên, nhưng có một bước khác không rõ ràng.

Nếu bạn xem xét kỹ một số lượt xem được tạo bởi rails g devise:views users bạn sẽ thấy rằng các mẫu bao gồm <%= render "devise/shared/links" %> ở cuối tệp. Vì bạn đã tạo các chế độ xem này, các liên kết được chia sẻ hiện nằm ở users/shared/links. Vì người sáng tạo không tìm thấy bất kỳ thứ gì trong số devise/shared/links nữa nên thay vào đó, nó sử dụng chế độ xem liên kết mặc định.

Thay đổi <%= render "devise/shared/links" %> thành <%= render "users/shared/links" %> và bạn đã đặt!

+0

Đó là câu trả lời cho tôi) Sớm không có cài đặt phạm vi và phát sinh đã ghi đè chế độ xem mặc định theo mặc định. –

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