1

如何使用 Active Admin 的表单块来更新跟踪当前资源中的特定属性何时更新的表?

例如,我有这样的事情:

form do |f|
    f.inputs "Details" do
    f.input :name
    f.input :address
    f.input :zip
    f.input :city
    f.input :active_state, as: :select, collection: active_states
    f.input :approval_state, as: :select, collection: approval_states
    f.input :new_comment
  end
  f.buttons
end

new_comment除了是当前资源上存在的属性之外的所有内容。

我尝试在课堂上为资源做这样的事情:

def new_comment
  history = History.new(:id, Time.now)
  history.comment
end

当失败时,我也尝试创建一个控制器实例变量,但这也不起作用。场地课程与历史课程没有任何关联。我只是想创建一个输入列,每当用户编辑场地然后添加评论时,它将在我的历史记录表中创建一个新行。

历史模型如下所示:

class History < ActiveRecord::Base
  attr_accessible :comment, :venue_id, :created_at
  belongs_to :venue

  def initialize(id, datetime)
    @id = id
    @datetime = datetime
  end
end

该表格适用于如下所示的场地:

class Venue < ActiveRecord::Base
 attr_accessible :name, :address, :zip, :city
 has_many :histories
 accepts_nested_attributes_for :histories
 //with a bunch of methods
end

经过一番挖掘后,我尝试这样做,但它也不起作用:

form do |f|
  f.inputs "Details" do
    f.input :name
    f.input :address
    f.input :zip
    f.input :city
    f.input :active_state, as: :select, collection: active_states
    f.input :approval_state, as: :select, collection: approval_states
  end
  f.inputs "History" do
    f.has_many :histories do |h|
        h.input :id
        h.input :comment
        h.input :modified_at
    end
  end
  f.buttons
end
4

1 回答 1

0

除了设置模型关系 和 之外accepts_nested_attributes_for,请在您的 ActiveAdmin 资源中尝试此操作:

form do |f|
  f.inputs "Details" do
    f.input :name
    f.input :address
    f.input :zip
    f.input :city
    f.input :active_state, as: :select, collection: active_states
    f.input :approval_state, as: :select, collection: approval_states
    f.has_many :histories do |h|
      h.input :id
      h.input :comment
      h.input :modified_at
    end
  end
  f.actions
end
于 2013-09-02T01:08:54.060 回答