2011-02-11 2 views
1

I이 사용자 및 사용자 그룹에 대해 다음 두 가지 간단한 모델 :Formtastic : 모델 연결을 사용할 때 레이블을 결정하기 위해 컬렉션에서 실행할 메소드를 선택하는 방법은 무엇입니까?

class User < ActiveRecord::Base 
    belongs_to :user_group 
end 

class UserGroup < ActiveRecord::Base 
    has_many :users 
end 

나는 사용자 그룹 모델 내 양식을 그립니다 다음 formtastic 코드를 사용

<% 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 %> 

양식은 멋지게 표시되며 현재 UserGroup에 속한 사용자에 대해 선택란이 선택된 상태에서 시스템의 모든 사용자를 나열합니다. 현재 목록에 표시되는 사용자의 유일한 속성은 "사용자 이름"입니다.

"사용자 이름"방법을 사용하여 각 사용자의 레이블을 얻는 방법은 어떻게 결정됩니까?

"first_name"및 "last_name"속성을 표시하도록 어떻게 변경합니까?

답변

3

은 다음과 같습니다

덕분에 formtastic의를 통해 이루어집니다 label_method합니다. Found in this answer.

<%= 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 %> 
+1

label_method는 member_label http://stackoverflow.com/questions/9609462/how-do-you-fix-formtastic-label-method-is-에 찬성 제거되었습니다 더 이상 사용할 수 없음 –

관련 문제