エンジンの名前空間と少し混乱しています。使用されるRailsエンジンでisolate_namespace
は、
module Blog
class Engine < Rails::Engine
isolate_namespace Blorgh
end
end
名前空間を持つオブジェクトを参照する必要があるのはいつですかBlog
(例:Blog::Post
vs just Post
)?
たとえば、Post
エンジンのリソースのコントローラー内で、実行しても大丈夫Post.find
ですか?どうしても使う必要があるときはBlog::Post
?
モデルの関連付けでも、Postと仮定しhas_many :comments
ます。どういうわけか、私はそれを次のように定義することを期待していました:
class Post < ActiveRecord::Base
:has_many "blog/comments"
end
すべてが名前空間化されているため(モデル、テーブル名など)、正しく機能しているように見えますhas_many :comments
。名前空間が関連付けキーで使用されないのはなぜですか。また、Comment
リソースがホストアプリケーションに存在する場合、railsはどのようにしてComment
私が参照しているものを認識しますか?