Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用模型中未引用的表:联接表_Ruby On Rails_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 使用模型中未引用的表:联接表

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

有可能吗?我有点迷路了

我正在尝试向RubyonRails3.2应用程序添加一些功能,我没有开发这个应用程序,但是我对模型定义感到困惑

下面是一个示例:

    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的表

类似地,外键和关联外键覆盖默认外键名称