我正在尝试为我的Miniatures模型创建克隆链接。我希望它能够复制当前模型并使用当前模型的信息渲染一个新表格,以便稍微调整然后保存。
我与:
联系<%= link_to 'clone', clone_miniature_path(@miniature) %>
我的miniatures_controller中有以下操作:
def clone
@miniature = Miniature.find(params[:id]) # find original object
@miniature = Miniature.new(@miniature.attributes) # initialize duplicate (not saved)
@all_manufacturers = Manufacturer.all
@production = @miniature.productions.build
render :new # render same view as "new", but with @miniature attributes already filled in
end
更新:我现在已经定义了@production,并且它在渲染过程中不再崩溃,但它只填充带有@miniature模型信息的表单并保留@production drop - 空白。我可能需要添加一些东西:
@miniature = Miniature.new(@miniature.attributes)
也许?奇怪,因为miniature_params肯定包括productions_attributes:需要填写下拉列表。在编辑视图中正常工作。
我的新方法是
def new
@miniature = Miniature.new
@all_manufacturers = Manufacturer.all
@production = @miniature.productions.build
end
我的编辑方法几乎相同,但很明显有一个查找。
答案 0 :(得分:0)
不确定您的型号,但如果Miniature具有生产关系,您应该具有以下内容:
<%= f.fields_for(@miniature.production) do |pf|%>
您正在引用未在控制器中定义的@production。也许像是
def clone
@miniature = Miniature.find(params[:id]) # find original object
@miniature = Miniature.new(@miniature.attributes) # initialize duplicate (not saved)
@production = @minitature.production
render :new # render same view as "new", but with @miniature attributes already filled in
end
可以提供帮助。
同样,不确定“生产”和“缩影”之间的关系。