我把我的頭髮拉出來試圖理解Rails 3中的命名空間。我嘗試了以下幾個不同的教程,並且我可以讓我的模型工作的唯一方法是如果我在基本目錄中定義模型並且我的名字空間目錄。Rails 3命名空間需要模型被定義兩次?
如果我只定義它希望這個定義這兩個型號和命名空間::模型,如下命名目錄的型號:
LoadError (Expected .../app/models/plugins/chat.rb to define Chat):
或
LoadError (Expected .../app/models/plugins/chat.rb to define Plugins::Chat):
我敢肯定,我我錯過了一些明顯的東西,但我真的可以用正確的方向使用指針。 這裏是相關的摘錄。
/models/plugins/chat.rb
class Plugins::Chat
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
...
end
/controllers/plugins/chats_controller.rb
class Plugins::ChatsController < Plugins::ApplicationController
load_and_authorize_resource
...
end
/config/routes.rb
namespace :plugins do
resources :chats
end
/配置/ application.rb
config.autoload_paths += Dir["#{config.root}/app/models/**/"]
編輯 這是某種與慘慘,我們使用的權限寶石不良相互作用。該行load_and_authorize_resource在某種程度上是錯誤的。將繼續挖...
這樣做。我還必須使用完整的類路徑來定義我的權限。謝謝。 – RSG 2011-02-11 08:20:52