---
name: "Jifty::Action::Record"
section: "3pm"
platform: "linux"
package: "libjifty-perl"
version: "1.10518+dfsg-2"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Jifty::Action::Record"
---

# Jifty::Action::Record(3pm)

## NAME

Jifty::Action::Record -- An action tied to a record in the database.

## DESCRIPTION

Represents a web-based action that is a create, update, or delete of a Jifty::Record object.  This automatically populates the arguments method of Jifty::Action so that you don't need to bother.

To actually use this class, you probably want to inherit from one of Jifty::Action::Record::Create, Jifty::Action::Record::Update, or Jifty::Action::Record::Delete.  You may need to override the "record\_class" method, if Jifty cannot determine the record class of this action.

## METHODS

### record

Access to the underlying Jifty::Record object for this action is through the `"record"` accessor.

### record\_class

This method can either be overridden to return a string specifying the name of the record class, or the name of the class can be passed to the constructor.

### report\_detailed\_messages

If the action returns true for `"report_detailed_message"`, report the message returned by the model classes as the resulting message.  For Update actions, Put the per-field message in `"detailed_messages"` field of action result content.  The default is false.

### new PARAMHASH

Construct a new `"Jifty::Action::Record"` (as mentioned in Jifty::Action, this should only be called by `"framework->new_action"`.  The `"record"` value, if provided in the PARAMHASH, will be used to load the "record"; otherwise, the primary keys will be loaded from the action's argument values, and the "record" loaded from those primary keys.

### arguments

Overrides the "arguments" in Jifty::Action method, to automatically provide a form field for every writable attribute of the underlying "record".

This also creates built-in validation and autocompletion methods (validate\_$fieldname and autocomplete\_$fieldname) for action fields that are defined "validate" or "autocomplete". These methods can be overridden in any Action which inherits from this class.

Additionally, if our model class defines canonicalize\_, validate\_, or autocomplete\_ FIELD, generate appropriate an appropriate canonicalizer, validator, or autocompleter that will call that method with the value to be validated, canonicalized, or autocompleted.

`"validate_FIELD"` should return a (success boolean, message) list.

`"autocomplete_FIELD"` should return a the same kind of list as Jifty::Action::\_autocomplete\_argument

`"canonicalized_FIELD"` should return the canonicalized value.

### possible\_columns

Returns the list of columns objects on the object that the action can update. This defaults to all of the `"containers"` or the non-`"private"`, non-`"virtual"` and non-`"serial"` columns of the object.

### possible\_fields

Returns the list of the "possible\_columns"' names.

Usually at the end names are required, however for subclassing column objects are better, or this method in a subclass turns out to be "map to column" - "filter" - "map to name" chain.

### take\_action

Throws an error unless it is overridden; use Jifty::Action::Record::Create, ::Update, or ::Delete

## SEE ALSO

Jifty::Action, Jifty::Record, Jifty::DBI::Record, Jifty::Action::Record::Create, Jifty::Action::Record::Update, Jifty::Action::Record::Delete

## LICENSE

Jifty is Copyright 2005-2010 Best Practical Solutions, LLC. Jifty is distributed under the same terms as Perl itself.
