0

我以为我可以通过系统地浏览选项来打败它。它赢了。

index.html.erb 和 form.html.erb 就像现在一样工作。

我在 Bids 和 Contacts 之间有多对多的关系,bids_contacts 在该表中的 bid_id 和 customer_contact_id 之间。

这是联系人然后出价模型:

has_and_belongs_to_many :bid_customer_contacts, :class_name => 'Bid',
  :association_foreign_key => 'bid_id'

has_and_belongs_to_many :customer_contacts, :class_name => 'Contact', :foreign_key => 'customer_contact_id'

bids_controller.rb 没什么特别的

show.html.erb 文件错误:

Mysql2::Error: Unknown column 'bids_contacts.contact_id' in 'on clause':   
SELECT  `contacts`.* FROM `contacts` INNER JOIN `bids_contacts'  
    ON  `contacts`.`id` = `bids_contacts`.`contact_id'  
 WHERE  'bids_contacts`.`customer_contact_id` = 15

代码是:

<b>Customer Contacts:</b>
<% if !@bid.customer_contacts.empty? %>   <<===============
  <ul>
    <% @bid.contacts.each do |bc| %>
        <li><%= link_to(bc.name, bc) %></li>
    <% end %>
</ul>
<% else %>
    No Customer Contacts<br/>
<% end %>

我在 M2M 表中尝试了contact_id而不是customer_contact_id,但我得到了不同的错误。

如果我需要分享其他内容来解决这个谜团,请告诉我。谢谢。

4

1 回答 1

0

在你看来,你在打电话

@bid.customer_contacts

然后稍后

@bid.contacts

你可能想要

@bid.customer_contacts

两次,因为你用这种方式定义了方法

has_and_belongs_to_many :customer_contacts ...

我假设您将 customer_contact_id 作为数据库中的字段,但是当您调用 .contacts 时,您的视图会查找不存在的 contact_id 字段。

于 2013-02-12T21:59:02.297 回答