我不确定我是否理解使用has_many和belongs_to明确定义关系的那一点。我正在使用Mongoid。
def create
@node = Node.find(params[:node_id])
@comment = current_user.comments.new(comment_params)
@comment.node = @node
@card_id = params[:card_id]
我知道成员是乐队的一部分,乐队包含许多成员。但是为什么我不能在Member中定义一个名为" band_name"的字符串字段。存储了乐队的名称,我可以用它来从数据库中检索一个成员的相应乐队。
或者,如果我想成为乐队的成员,我不能这样做:
class Band
include Mongoid::Document
field: name, type: String
has_many :members
end
class Member
include Mongoid::Document
field :name, type: String
belongs_to :band
end
答案 0 :(得分:0)
has_many
和belongs_to
是Rails提供的两种类型的关联,用于定义模型之间的关联。
要查看所有类型的Rails关联,我建议您查看official Rails documentation
当您定义这样的关联时,Rails会自动将外键添加到数据库中的正确表中,这是Rails遵循正确约定时的优势之一。
简而言之,Active Record关联创建了一些方便的方便方法。但是,您总是可以编写自己的方法来获取所有内容。但这不是Rails方式。
Band1
是一个id = 1的乐队
Band2
是一个ID = 2
如果A
和B
成员属于Band1
,则在数据库中,members
表将band_id
值设置为1。