【问题标题】:Unable to save record using partial无法使用部分保存记录
【发布时间】:2012-06-20 14:58:20
【问题描述】:

在我的 rails 3 项目中,我使用 DataMapper 作为 ORM 并使用 Haml 作为模板语言。并定义了两个模型 Car 和 Image 之间的一对多关联。一辆车可以有很多张图片,一张图片属于一辆车。

在我的图像模型中,我有以下内容

belongs to: car

在我的汽车模型中,我有

has n, :images

在 Car 模型的视图中,我有以下内容:

= f.fields_for :images, @car.images do |img|
  = render :partial => "cars/images", :locals => {:f => img}

现在,在图像模型的视图中,我有

 = time_select("image", "upload_time")

upload_time 是 images 表中的一个字段。

但数据未记录在图像表中。访问部分字段的正确方法是什么?

谢谢

【问题讨论】:

  • 您的单元测试对此有何看法?

标签: ruby-on-rails ruby-on-rails-3 haml datamapper


【解决方案1】:

试试这个。

将此添加到您的汽车模型

accepts_nested_attributes_for :images

你的选择应该是

= time_select("image[]", "upload_time")

【讨论】:

  • 最终,accepts_nested_attributes_for 仅适用于 ActiveRecord ORM。 Datamapper 也有dm-accepts_nested_attributes_for,但它通常会与现有的 dm-core 产生依赖性问题。
  • 那么不要使用accepts_nested_attributes_for。只要确保在控制器中捕获正确的参数并为图像创建记录。在处理表单时使用=debug params if Rails.env == 'development' 会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
  • 2023-03-18
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多