Formtastic: как выбрать метод для запуска в коллекции, чтобы определить метку при использовании ассоциаций моделей? - PullRequest
1 голос
/ 12 февраля 2011

У меня есть две простые модели для пользователей и групп пользователей:

class User < ActiveRecord::Base
  belongs_to :user_group
end

и

class UserGroup < ActiveRecord::Base
  has_many :users
end

Я использую следующий код формы для рисования моей формы для модели UserGroup:

<% semantic_form_for [:system, @user_group] do |form| %>
  <% form.inputs do %>
    <%= form.input :name %>
    <%= form.input :description %>
    <%= form.input :users, :as => :check_boxes %>
  <% end %>
  <% form.buttons do %>
    <%= form.commit_button "Save Group" %>
  <% end %>
<% end %>

Форма отображает красиво и перечисляет всех пользователей в системе с флажком для пользователей, которые в настоящее время принадлежат к группе пользователей. В настоящее время единственным атрибутом пользователя в списке, который он отображает, является «имя пользователя».

Как определяется использование метода «username» для получения метки для каждого пользователя?

Как мне изменить его, чтобы он отображал атрибуты "first_name" и "last_name"?

Спасибо

1 Ответ

3 голосов
/ 14 февраля 2011

Похоже, что это достигается через formtastic's: label_method. Найдено в этом ответе .

<%= form.input :users, :label_method => :username, :as => :check_boxes %>

или

<%= form.input :users, :label_method => Proc.new { |x| "#{x.first_name} #{x.last_name}" }, :as => :check_boxes %>
...