如果我做的:模塊如何在控制器內部工作?
rails generate scaffold account/user username
我得到一個控制器,它看起來像這樣:
class Account::UsersController < ApplicationController
def index
@account_users = Account::User.all
end
...
end
如果我包括賬戶模塊,那麼它看起來像所有的數據庫調用不需要是前綴爲「Account ::」。即
class Account::UsersController < ApplicationController
include Account
def index
@account_users = User.all #this works because I included the Account Module above
end
...
end
現在,如果我將我的
控制器/帳號/ users_controller.rb
文件:
控制器/ 管理 /account/users_controller.rb
該文件看起來像這樣(注意:在此移動後,我還糾正了我的路線文件):
class Admin::Account::UsersController < ApplicationController
include Account
def index
@account_users = User.all #this call does not work now
end
...
end
,但我得到一個錯誤說「未初始化的不斷聯繫::帳戶:: UsersController ::用戶」
它看起來像Rails是努力讓自己在「用戶」模型數據庫調用,而不在它前面的「Account ::」模塊。
那麼如何在控制器中包含模塊?爲什麼當我將我的控制器移動到不同的文件(並將模型放置在生成的腳手架的相同位置)時這不起作用,但它可以與腳手架生成的文件一起使用?我該如何解決這個問題?
[在模型中使用不同文件夾結構時在控制器中包含模塊?](http://stackoverflow.com/questions/18026421/including-a-module-in-a-controller-when -using-a-different-folder-structure-for-t) – Benj
我已經在你的其他重複問題中爲你提供了一個完整的答案。您無法在models/account/user.rb中找到':: User'模型 – Benj