ruby-on-rails - Rails-更新nested_attributes不适用于一对多关系

标签 ruby-on-rails activerecord ruby-on-rails-4 nested-attributes

我正在尝试实现nested_attributes并创建时间表。但是它在编辑时失败,没有给出任何错误。它适用于一对一关系,但不适用于一对多关系。我正在传递时间表的ID,如本文档中所述:NestedAttributes

我有以下模型:

class Article < ActiveRecord::Base
  has_many :schedules

  accepts_nested_attributes_for :schedules
end

class Schedule < ActiveRecord::Base
  belongs_to :article
end

这是用于将强参数列入白名单的 Controller 的片段:
def article_params
  params.require(:article).permit(schedules_attributes: [ :id, :schedule_for, :content, :time_zone, :date, :time ])
end

这是我通过Rails控制台尝试过的示例:
article_params = {"schedules_attributes"=>{"0"=>{"schedule_for"=>"pre", "content"=>"This is a scheduled message for ETS - !!!!!!!", "time_zone"=>"American Samoa", "date"=>"2013-10-20", "time"=>"11:15 AM", "id"=>"1"}}}

article = Article.find(1)

article.update(article_params)

D, [2013-10-25T16:42:50.266517 #2296] DEBUG -- :    (0.1ms)  BEGIN
D, [2013-10-25T16:42:50.267789 #2296] DEBUG -- :   Schedule Load (0.3ms)  SELECT "schedules".* FROM "schedules" WHERE "schedules"."article_id" = $1 AND "schedules"."id" IN (1)  [["article_id", 1]]
D, [2013-10-25T16:42:50.273288 #2296] DEBUG -- :    (0.3ms)  COMMIT

它选择了正确的时间表,但没有执行更新查询,也没有任何错误。我在这里想念什么吗?

编辑:

我正在使用Ruby 2.0和Rails 4。

最佳答案

以下是一些适合您的想法:

def article_params
  schedules_attributes: [ :id, :schedule_for, :content, :time_zone, :date, :time ]
end

应该:
def article_params
    params.require(:article).permit(schedules_attributes: [ :id, :schedule_for, :content, :time_zone, :date, :time ])
end

关于ruby-on-rails - Rails-更新nested_attributes不适用于一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586129/

相关文章:

ruby-on-rails - 如何使用 activerecord 获取最后 N 条记录?

ruby-on-rails - 有没有什么好方法可以消除范围/谓词逻辑重复?

ruby-on-rails - Travis ci、Rails 和 Postgresql - 错误类型 hstore 不存在

ruby-on-rails - 如何知道事务被回滚的原因?

mysql - Rails 错误地转义了我的查询

ruby-on-rails-4 - Cloudinary 图像对于 Rails4 和 CarrierWave 来说并不刷新

ruby-on-rails - 我如何重写它以使用 compass 功能?

sql - Postgres 使用 CSV 数据从变量复制

ruby-on-rails - 用于 Rails 中配置文件完成百分比的 Gem

python - 适用于 Ruby、Ruby on Rails、Python 的智能感知