在nested_forms中更新
update in nested_forms
我使用的是Rails 3.0.3
我有一个模型Bill:
class Bill < ActiveRecord::Base
has_many :entries
accepts_nested_attributes_for :entries
end
在我的账单视图中,我使用嵌套表单在账单中创建新条目,并使用Javascript插入现有条目,此时,没有bill_id:
$("#row" + nested_form_id).append("<input type='hidden' name='bill[entries_attributes][" + nested_form_id + "][id]' id='bill_entries_attributes_" + nested_form_id + "_id' value='" + id +"' >");
当我提交表单时,我得到这个错误:
ActiveRecord::RecordNotFound (Couldn't find Entry with ID=127 for Bill with ID=):
app/controllers/bills_controller.rb:121:in `new'
app/controllers/bills_controller.rb:121:in `create'
那么问题是,当我提交
时,rails正在查找bills中的条目知道我该如何解决这个问题吗?
我不知道如何使用嵌套表单来实现这一点,所以我将已经存在的条目手动设置为账单:
nested_entries = {}
params[:bill][:entries_attributes] = {}
params[:entries].each_pair do |key, value|
if value[:id].nil?
params[:bill][:entries_attributes][key] = value
else
nested_entries[key] = value
end
end
@bill = Bill.new(params[:bill])
@bill.save
bill_id = @bill.id
nested_entries.each_pair do |key, value|
@entry = Entry.find(value[:id])
value[:bill_id] = bill_id
@entry.update_attributes(value)
end
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 标记的实时更新,无需加载页面谷歌地图API V3
- 使用mongodb更新中的一个变量
- 访问jsrender模板中的全局javascript变量并更新它
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段