1
class Agency < ActiveRecord::Base
  has_many :events

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  attr_accessible :name, :email, :phone, :address, :city, :state, :zip,
                  :notes, :is_admin, :password, :password_confirmation, :remember_me
end

class Event < ActiveRecord::Base
  belongs_to :agency
  has_many :consumers
 end

class Consumer < ActiveRecord::Base
  belongs_to :event
end

consumer_controller に、代理店のフィールドを含めようとしています

 active_scaffold :consumer do |conf|
    list.columns = [
      :agency, :event
    ]
 end

このような関連付けがあります。代理店 -> イベント -> 消費者。また、エージェンシーと消費者の間には関係がなく、イベントを通じてのみ関係があります。

しかし、それはエラーを引き起こします。

任意のフィールド フォームの代理店テーブルを一覧表示するにはどうすればよいですか?

4

2 に答える 2

0

解決策は非常に単純でしたが、おそらく非効率的でした。

Consumer モデルにメソッドを追加しました。

class Consumer < ActiveRecord::Base
  ...

  def agency_name
    self.event.agency[:name]
  end
end

次に、リストに仮想列を追加しました。

list.columns = [
  :agency_name, :event, ... ]

それで全部です。

于 2013-02-06T08:43:39.437 に答える
0

wikiによると、あなたが望むのはこれだと思います:

active_scaffold :consumer do |conf|
  conf.columns = [:agency, :event]
end

また、消費者に代理店の関連付けまたは列があることを確認してください。

于 2013-02-05T21:53:40.400 に答える