best_in_place gem を使用したインプレース編集について説明しているRailsCasts#302を見ました。性別オプションについては、Ryan が show.html.erb 内の配列を使用してドロップダウン ボックスにします (彼が配列を明示的に定義している性別のセクションを参照してください)。
<p>
<b>Gender:</b>
<%= best_in_place @user, :gender, type: :select, collection: [["Male", "Male"], ["Female", "Female"], ["", "Unspecified"]] %>
</p>
しかし、私が欲しいのは、次のようにモデル自体の内部で配列を定義したことです:(私の配列要素は単純ではなく、数が少ないため)
例:
user.rb
class User < ActiveRecord::Base
def authencity_types
['Asian', 'Latin-Hispanic', 'Caucasian']
end
end
best_in_place
構文を使用して、この配列要素をドロップダウンとして使用するにはどうすればよいですか。
PS:私はこのようなことを試しました
<% @users.each do |user| %>
<%= best_in_place user, :authencity, type: :select, :collection => User::authencity_types %>
<% end %>
しかし、未定義のメソッドauthencity_typesと書かれています