我确信这只是我缺乏经验,所以请多多包涵。
我有一个具有价格的模型 MenuItem。不同的项目类型(menu_items、产品、事件)可以有价格。
我已将其设置如下:
class MenuItem < ActiveRecord::Base
...
has_one :price, :as => :pricable
accepts_nested_attributes_for :price
attr_accessible :price_attributes
...
end
class Price < ActiveRecord::Base
belongs_to :pricable, :polymorphic => true
end
Price 对象的价格值是 Mysql5 上的小数(8,2)。
以我的形式:
<%= form_tag "/menus/save" do %>
...
<% menu_header_form.menu_items.each do |item| %>
<div><%=item['header'] %></div>
<%=text_field :menu_item, :header, :index=>item.id, :value=>item.header %>
<%=text_field :menu_item, :sort, :index=>item.id, :value=>item.sort, :size => 2 %>
<% item.fields_for :price do |menu_item_price| %>
<%= menu_item_price.text_field :price %>
<% end %>
<% 结束 %>
并收到以下错误:
undefined method `fields_for' for #<MenuItem:0x007fec8d9be138>
我将如何迭代以获得价格值?我的模型设置方式是否意味着这些 menu_items 默认情况下会有一个与之关联的价格记录(甚至是空/空值)?
谢谢