2

次のようなモデルがあるとします。

class Animal
    include DataMapper::Resource
    property :id, Serial
    property :type, Enum[ :cat, :bat, :rabbit, :zebra]
end

動物を追加するための erb テンプレートを指すルートがあると仮定すると、@animal = session[:animal]どうすれば動物の種類のリストを作成できますか?

...
<form>
  <% @animal.type.each do |animal| %>
    <select>
      <option value="<%= @animal.type" %></option>
    </select>
  <% end %> 
</form>

(明らかに、そのコードは私が探していることを実行しませんが、もう少し明確になることを願っています。)

4

1 に答える 1

3

プロパティには、列挙値を検索するために使用できる flags オプションがあります。これがどこに文書化されているかわかりません - 私はここで見つけました。したがって、次のようなことができます。

<form>
  <select>
    <% Animal.type.options[:flags].each do |animal| %>
      <option value="<%= animal %>"><%= animal %></option>
    <% end %>
  </select>
</form>

これをヘルパーメソッドに一般化できると思います。

于 2011-10-04T11:46:50.363 に答える