0

在我的数据库中,我试图在网点和文章之间建立一对多的关系。
使用该关系时出现以下错误:

undefined method `outlet_id' for #<Article:0x007fc353887e58>

以下是模型:

    class Article < ActiveRecord::Base
      belongs_to :analyst 
      belongs_to :outlet
      has_and_belongs_to_many :loe
      attr_accessible :article_body, :author, :distribution, :loe, :most_important, :pubdate, :publication, :state, :submitted, :summary, :title, :url, :analyst_id, :loe_ids, :outlet_id
    end

    class Outlet < ActiveRecord::Base
      has_many :articles, foreign_key: :title
      attr_accessible :distribution, :name, :state, :article_ids
    end

这是架构:

  create_table "articles_loes", :id => false, :force => true do |t|
    t.integer "article_id"
    t.integer "loe_id"
  end

  create_table "loes", :force => true do |t|
    t.string   "name"
    t.string   "customer"
    t.integer  "article_id"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  add_index "loes", ["article_id"], :name => "index_loes_on_article_id"

  create_table "outlets", :force => true do |t|
    t.string   "name"
    t.integer  "articles_id"
    t.integer  "distribution"
    t.string   "state"
    t.datetime "created_at",   :null => false
    t.datetime "updated_at",   :null => false
  end

  add_index "outlets", ["articles_id"], :name => "index_outlets_on_articles_id"

这是调用的视图块:outlet

  <div class="span4">
    <%= f.association :loe %>
    <%= f.association :outlet %>
  </div>

如果有人有任何想法,我会非常感激他们。我想我可能需要文章中的 Outlets 索引?如果是这种情况,我不确定如何实施。提前致谢。

4

1 回答 1

2

现在,您的Outlet模型无法与articles它所拥有的相关联。一旦你说belongs_to,你需要有一个outlet_id column。因此,您需要在模型中添加一个outlet_id(整数)列,Article并使用它们所属的插座的 id 填充它。如果在这种情况下,一篇文章可以属于多个出口,则您需要many-to-many通过联合表创建关系。

于 2013-06-04T21:12:44.847 回答