比较详细说明我自己的记录集,很简单但是有很多字段和子记录,我只是希望能够让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 有效,则可能会被修复。