Ruby on rails 使用模型中未引用的表:联接表
有可能吗?我有点迷路了 我正在尝试向RubyonRails3.2应用程序添加一些功能,我没有开发这个应用程序,但是我对模型定义感到困惑 下面是一个示例:Ruby on rails 使用模型中未引用的表:联接表,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,有可能吗?我有点迷路了 我正在尝试向RubyonRails3.2应用程序添加一些功能,我没有开发这个应用程序,但是我对模型定义感到困惑 下面是一个示例: class Indicator < ActiveRecord::Base #attr_accessible :name, :objective_ids, :weight, :operation_id, :objective_id, :unit, :formula, :acronym attr
class Indicator < ActiveRecord::Base
#attr_accessible :name, :objective_ids, :weight, :operation_id, :objective_id, :unit, :formula, :acronym
attr_protected
has_and_belongs_to_many :objectives
has_many :indicator_scores
has_many :indicatorscores, :class_name => 'IndicatorScore', :foreign_key => "scoredate_id"
belongs_to :operation
belongs_to :objective
has_and_belongs_to_many :sons, :join_table => "indicator_father_son", :class_name => "Indicator", :foreign_key => "indicatorfather_id", :association_foreign_key => "indicatorson_id"
end
类指示符“IndicatorScore”,:foreign\u key=>“scoredate\u id”
属于:操作
属于:客观的
有且属于多个:子、联接表=>“指示器父、子”、“类名称=>“指示器”、“外键=>“指示器父、id”、:关联、外键=>“指示器父、id”
结束
在这个模型中,特别是在has\u和选项上,我产生了一些想法,因为表“indicator\u father\u son”没有模型
这在RubyonRails MVC约定中合法吗
包含所有选项的has\u和\u belient\u to \u many子句到底做了什么?为什么有必要
如果模型演示不足以抓住问题,我可以提供更多代码
提前感谢您的帮助。来自:
“一个has_和_beside_to_多个关联创建了与另一个模型的直接多对多连接,没有中间模型。例如,如果您的应用程序包括程序集和零件,每个程序集都有许多零件,每个零件都出现在许多程序集中,您可以这样声明模型。”
在本例中,原始编码器添加了一个:join_table子句,强制表名与指定值匹配。如果打开数据库,您将看到一个名为indicator\u father\u son的表
类似地,外键和关联外键覆盖默认外键名称