我有一个Folder
模型和一个Project
模型,如下所示:
class Folder < ApplicationRecord
belongs_to :project
belongs_to :owner, polymorphic: true
end
我正在为以下项目创建一个文件夹:
folder = @project.folders.new(folder_params).merge(owner: current_user)
folder.save
我想为与以下项目无关的用户使用相同的Folder
模型:
folder = current_user.folders.new(folder_params)
folder.save
我也有一个用户模型:
has_many :folders, as: :owner
在为项目创建时,我是否可以使belongs_to :project
为强制性项目,为用户创建时是否可以使class Folder < ApplicationRecord
belongs_to :project
belongs_to :owner, polymorphic: true
belongs_to :folderable, polymorphic: true
end
为强制性项目?
什么是实现此目标的最佳方法,即将相同模型用于两个目的。我正在考虑将文件夹变为具有文件夹的多态文件夹以及所有者,如下所示:
class Project < ApplicationRecord
has_many :folders, as: :folderable
end
和
class User < ApplicationRecord
has_many :folders, as: :owner
has_many :folders, as: :folderable
end
和
user
是否也可以在我想为urlpatterns = [
url(r'^tools(?:/tool_one=(?P<tool_one>\w+))?/?$', views.ToolsViews.as_view(), name='tools'),
]
模型的同一个模型中声明两个多态性?