rails错误关联has_many链接

时间:2011-04-19 15:33:18

标签: ruby-on-rails associations

尝试在Customer和Contact模型之间建立非常基本的关联。

Customer has_many :contacts 
Contact belongs_to :customer
User has_many :customers

路线

    resources :customers do
      resources :contacts
    end

我不希望/联系人可以访问

当我添加我的观点时

new_customer_contacts_path

我有错误。如果我有

new_customer_contact_path(contact)

它有效,但链接到联系#show是错误的 - >它指向客户/ 7 / contact / 2,它应该是customers / 2 / contact / 7

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

你必须告诉客户谁的联系人姓名!

如下所示:

# Customer.first and Contact.first can be exchanged to instances 
# of Customer or Contact!

new_customer_contacts_path(Customer.first)
edit_customer_contact_path(Customer.first, Contact.first)
customer_contacts_path(Customer.first)

答案 1 :(得分:0)

new_customer_contact_path(contact)

这是错误的。您应该将客户传递给它而不是联系。

如果您想显示客户的联系方式,您应该使用customer_contact_path(客户,联系方式)。

供参考,请转到http://guides.rubyonrails.org/routing.html并搜索“从对象创建路径和网址”

答案 2 :(得分:0)

使用嵌套路由,您需要按照路径中列出的顺序传递对象(或至少其ID)。在'new'的情况下,您只需要传递父对象id,因为新的嵌套对象还没有id。

new_customer_contact_path(customer)