Active_scaffold添加到列表关联的表列

时间:2013-02-05 21:28:37

标签: ruby-on-rails activescaffold

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

在consumers_controller中,我尝试在代理商

中加入一些字段
 active_scaffold :consumer do |conf|
    list.columns = [
      :agency, :event
    ]
 end

有这样的协会代理商 - &gt;活动 - &gt;消费者。只有通过活动才能在代理商和消费者之间建立联系。

但它会导致错误。

如何列出列出任何字段表单代理表?

2 个答案:

答案 0 :(得分:0)

根据wiki,我认为你想要的是:

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

此外,请确保消费者拥有代理商关联或列。

答案 1 :(得分:0)

解决方案非常简单但很可能效率低下。

我在Consumer模型中添加了一个方法:

class Consumer < ActiveRecord::Base
  ...

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

然后我添加了一个虚拟列列表:

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

就是这样。