1

ユーザーとユーザー グループには、次の 2 つの単純なモデルがあります。

class User < ActiveRecord::Base
  belongs_to :user_group
end

class UserGroup < ActiveRecord::Base
  has_many :users
end

次の formtastic コードを使用して、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 %>

フォームは適切に表示され、現在 UserGroup に属しているユーザーのチェックボックスがオンになっているシステム内のすべてのユーザーが一覧表示されます。現在、表示されるリスト内のユーザーの唯一の属性は「ユーザー名」です。

「ユーザー名」メソッドを使用して各ユーザーのラベルを取得することをどのように決定していますか?

「first_name」および「last_name」属性を表示するように変更するにはどうすればよいですか?

ありがとう

4

1 に答える 1

3

これは、formtastic の :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 %>
于 2011-02-14T19:11:09.070 に答える