我有2个型号:
class Store < ActiveRecord::Base
attr_accessible :prices_attributes, :business_name
has_many :prices
accepts_nested_attributes_for :prices
end
class Price < ActiveRecord::Base
attr_accessible :price, :product_name, :purchase_date
belongs_to :store
end
我正在创建商店和价格,使其成为嵌套形式:
class StoresController < ApplicationController
def new
@store = Store.new
3.times {@store.prices.build }
end
end
嵌套表格:
<%= form_for @store do |f| %>
<%= f.text_field :business_name %>
<%= date_select("price", "purchase_date") %>
<%= f.fields_for :prices do |up| %>
<%= up.text_field :product_name %>
<%= up.text_field :price %>
<% end %>
<% end %>
我想将purchase_date
放在f.fields_for
之外,因此用户只需为所有价格选择一个date_select
。但这不起作用。 purchase_date
未显示在表单上。我怎么能这样做呢?
答案 0 :(得分:1)
如果子窗体显示purchase_date和购买的输入 - 并且您希望根据父窗体中的输入值设置这些输入的值 - 您将不得不在客户端编写脚本(javascript / jquery)所以孩子的值被设置以响应父输入的改变事件(或类似)。
如果子窗体不显示这些输入,则必须根据父级的属性(如果选择将它们添加到父级)或使用子级属性在服务器端(模型或控制器)设置子级属性。请求发送的params。