Method: AgileCommonHelper#agile_name_for_id
- Defined in:
- app/helpers/agile_common_helper.rb
#agile_name_for_id(model, field, field_name, id = nil) ⇒ Object
Will return descriptive text for id key when field in one table (table) has belongs_to relation to other table.
Parameters:
- model
-
String. Table (table) model name (lowercase).
- field
-
String. Field name holding the value of descriptive text.
- field_name
-
String. ID field name. This is by default id, but can be any other
(preferred unique) field.
- value
-
Value of id_field. Usually an id key but can be any other data type.
Example:
# usage in program.
agile_name_for_id('ar_user', 'name', nil, ar_page.created_by)
# usage in form
columns:
2:
name: site_id
eval: agile_name_for_id,site,name
# username is saved to document instead of user.id field
5:
name: user
eval: agile_name_for_id,ar_user,name,username
Returns: String. Name (descriptive value) for specified key in table.
142 143 144 145 146 147 148 149 150 |
# File 'app/helpers/agile_common_helper.rb', line 142 def agile_name_for_id(model, field, field_name, id = nil) return '' if id.nil? field_name = (field_name || 'id').strip.to_sym field = field.strip.to_sym model = model.strip.classify.constantize if model.class == String record = model.find_by(field_name => id) record.nil? ? '' : (record.send(field) rescue '?? not defined') end |