0

比较详细说明我自己的记录集,很简单但是有很多字段和子记录,我只是希望能够让github上给出的示例能够工作,即https://github.com/activescaffold/ active_scaffold/wiki/API%3A-嵌套

# app/models/company.rb
class Company < ActiveRecord::Base
   has_many :contacts
end

# app/models/contact.rb
class Contact < ActiveRecord::Base
  belongs_to :company
end

# app/controllers/contacts_controller.rb
class ContactsController < ApplicationController
  active_scaffold :contacts do | config |
  end
end

# app/controllers/companies_controller.rb
class CompaniesController < ApplicationController
  active_scaffold :companies do |config|
    config.nested.add_link("Company's contacts", [:contacts])
  end
end

显然,contacts 表有一个 company_id 列(即外键)。

“按原样”,似乎在公司控制器中,“公司”需要是“公司”。因此,在更改之后, config.nested... 行会导致以下错误:-

nil:NilClass 的路由错误未定义方法“add_link”

在尝试(但失败)解决此问题后,我只是将其注释掉并且效果很好,但是我需要一对一(或没有)关系,因此进行了更改(联系人必须更改为联系人,否则为 Rails 对象): -

# app/models/company.rb
class Company < ActiveRecord::Base
   has_one:contact
end

它似乎可以工作,但是当更新联系人时,它会使表单变得一团糟,在表单顶部显示更新的联系人,就在实际属于下面记录的字段标签下方,即公司记录。它还允许在创建公司记录时创建多个联系人,但这可能会受到另一种方法的限制,或者如果 config.nested.add_link 有效,则可能会被修复。

4

1 回答 1

1

我有同样的问题,只需使用这个(它在你发布的同一个链接中):

config.nested.add_link(:contacts, :label => "Company's contacts", :page => true)
于 2012-07-11T16:03:29.037 回答