環境:
Rails-3.2.12
Ruby-1.9.3
Mongoid-3.1.1
私はモデルを持っています:
class Item
include Mongoid::Document
field :name, type: String
field :type, type: String
end
しかし、ビューに動的フィールドを追加しようとすると、「色」と言って、未定義のメソッドエラーが発生します。
allow_dynamic_fields: true
構成ファイルで有効になっています。
_form.html.erb:
<%= form_for(@item) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :type %><br />
<%= f.text_field :type %>
</div>
<div class="field">
<%= f.label :color %><br />
<%= f.text_field :color %>
</div>
すでに色属性を持っているアイテムを編集しようとすると、すべてうまくいきます。item.type に依存するいくつかの動的属性を追加する必要がありますが、次のようなものはありません。
<% if @item[:color] %>
<%= f.text_field :color %>
<%else%>
<%= text_field_tag 'item[color]' %>
<% end %>
編集:
エラー:
NoMethodError アイテム #new
31 行目が発生した /app/views/items/_form.html.erb を表示:
undefined method `color' for # 抽出されたソース (31 行目付近):
28: <%= f.number_field :type %>
29: </div>
30: <%= f.label :color %><br />
31: <%= f.text_field :color %>
32: <div class="actions">
33: <%= f.submit %>
34: </div>