Схема:
action_types
------------
id
name
description
actions
-------
id
action_type_id
date
description
Цель - скопировать action_types.description в actions.description, только если он еще не занят в пользовательском интерфейсе (!).
Что сделано:
class ActionsController < ApplicationController
active_scaffold :action do |c|
c.columns = [ \
, :date \
, :action_type \
, :description \
]
c.columns[:action_type].form_ui = :select
c.columns[:action_type].options[:update_column] = :description
c.columns[:description].form_ui = :textarea
c.columns[:description].options = { :cols => 40, :rows => 5}
end
protected
def after_render_field(record, column)
# record: almost empty, only "action_type" is filled.
# column: column.name == "action_type"
# @params[]: id: id for the record
# But no data on UI state. So if the user wrote some lines into the
# description then it will be lost. No possibility
# to express "do nothing!"
end
#...
end
В качестве альтернативы я могу принять, если у нас нет этой функциональности во время «обновления» только при «создании».Что является полумерой, но пока будет достаточно.
Есть идеи?
(Rails 2.3.4)