【问题标题】:Can't get Rails 3 Active Scaffold Nested Forms/Records to work properly无法让 Rails 3 Active Scaffold 嵌套表单/记录正常工作
【发布时间】:2012-05-23 13:27:57
【问题描述】:

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

# 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 有效,则可能会被修复。

【问题讨论】:

    标签: ruby-on-rails activerecord nested scaffold


    【解决方案1】:

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

    config.nested.add_link(:contacts, :label => "Company's contacts", :page => true)
    

    【讨论】:

    • 感谢您的回复,对不起,我没有回来查看过,因此我最终改用了 ActiveAdmin,效果很好。
    猜你喜欢
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 2016-01-22
    相关资源
    最近更新 更多