Đây là a brand new Rails 5.1.4 app, với mô hình và một vài tuyến đường và bộ điều khiển.Tự động tải/độ phân giải liên tục của Rails đang tạo mô-đun ma
Một bộ điều khiển namespaced là tham khảo một mô hình cấp cao nhất:
class AdminArea::WelcomeController < ApplicationController
def index
@user = User.new(name: 'Sergio')
end
end
Cho đến nay rất tốt. Bạn có thể kiểm tra tổng thể, điều hướng đến http://localhost:3000/admin_area/welcome
và xem nó hoạt động.
NHƯNG nếu chúng tôi were to add an empty directory app/presenters/admin_area/user/
*, thì mọi thứ trở nên lạ. Đột nhiên, User
trong bộ điều khiển đó không phải là mô hình của tôi, mà là một mô-đun không tồn tại!
NoMethodError (undefined method `new' for AdminArea::User:Module):
app/controllers/admin_area/welcome_controller.rb:3:in `index'
Tự nhiên, mô-đun này không có bất kỳ phương pháp nào [không được tích hợp] và không thể được ghim vào tệp nguồn trên đĩa.
Câu hỏi: tại sao thêm một thư mục trống làm cho đường ray bí ẩn gợi ra mô-đun ra khỏi không khí mỏng thay vì tên giải quyết chính xác User
cho mô hình của tôi?
* thực sự, nếu bạn kiểm tra nhánh đó, bạn sẽ gặp lỗi khác.
NameError (chưa được khởi tạo liên tục AdminArea :: WelcomeController :: tài khoản)
vì git sẽ không cho phép tôi thực hiện một thư mục rỗng, vì vậy tôi đã thêm một tập tin .keep
trong đó. Nhưng ngay sau khi bạn xóa tệp đó, bạn sẽ nhận được hành vi được mô tả ở trên.
có thể trùng lặp của [Rails 4: tổ chức mô hình đường ray trong đường tiểu mà không namespacing mô hình] (https://stackoverflow.com/questions/18934115/rails-4-organize-rails-models-in-sub mô hình -path-without-namespacing) – jon1467
@ jon1467: không, không trùng lặp. Trừ khi tôi đang thiếu một cái gì đó. –
Xin lỗi, tôi nghĩ rằng tôi đã hiểu sai câu hỏi của bạn khi hỏi cách đặt mô hình người dùng của bạn trong thư mục 'người trình bày'. Lỗi của tôi. – jon1467