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

明らかに、連絡先テーブルには company_id (つまり、外部キー) の列があります。

「そのまま」、会社のコントローラーでは、「会社」は「会社」である必要があるようです。したがって、その変更後、 config.nested... 行により次のエラーが発生します:-

nil:NilClass のルーティング エラー未定義メソッド「add_link」

これを修正しようとして(そして失敗して)、コメントアウトしたところ、うまく機能しましたが、1対1(またはなし)の関係が必要なので、変更を加えました(連絡先は連絡先に変更する必要があり、それ以外の場合は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 に答える