Simple form association custom label name

ruby-on-rails, simple-form

Solution

You'll have to use the :label_method option for this.

<%= f.association :owner_type, :include_blank => false, :label_method => lambda { |owner| "#{owner.name} | #{owner.subtype_name}" } %>

or, if you define a select_label method on the owner's class, you can do

<%= f.association :owner_type, :include_blank => false, :label_method => :select_label %>

Problem

I have been struggling with what I perceive to be a simple problem: Working in Rails 3.0.8 with the simple_form 1.4 gem. I have two models, owners and owner_types; ``` class Owner < ActiveRecord::Base belongs_to :own_type attr_accessible :name, :own_type_id end class OwnerType < ActiveRecord::Base has_many :owners attr_accessible :name, :subtype_name end ``` In my the _form partial of the Owner view, I want to have a select box that displays both the name and subtype_name of the owner_type association. ....something like this: Owner Type: [name | subtype_name] eg. [Government | Federal]; [Government | Municipal] My view now contains: app/views/owners/_form.html.erb ``` <%= simple_form_for @owner do |f| %> <%= f.error_messages %> <%= f.input :name %> <%= f.association :owner_type, :include_blank => false %> <%= f.button :submit %> <% end %> ``` ...the f.association only list the owner_type.name field by default. How do you specify different fields, or in my case two fields? All help is appreciated; thanks in advance. DJ

Original source