【问题标题】:create model with nested models with Rails JSON request leads to MassAssignmentSecurity使用 Rails JSON 请求创建具有嵌套模型的模型导致 MassAssignmentSecurity
【发布时间】:2012-11-04 02:02:09
【问题描述】:

这是我的模型;

class Calendar <ActiveRecord::Base
attr_Accessible :email, :cal_items_attributes
has_many :cal_items
accepts_nested_attributes_for :cal_items
end

class CalItem < ActiveRecord::Base
attr_accessible :calendar_id, :name, :url
has_one :calendar
end

我的网站将成为一个主干应用程序,因此我向 localhost:3000/calendars.json 发出 POST 请求

{"calendar":
  {"email":"xxx@gmail.com",
   "cal_items": 
     [{"url":"http://www.google.com"},{"url":"http://www.yahoo.com"}]
  }
}

它返回一个错误

ActiveModel::MassAssignmentSecurity::Error 在 CalendarsController#create 无法批量分配受保护的属性:cal_items

我认为带有 cal_items_attributes 的 attr_accessible 可以解释这一点!

谢谢, 乔

【问题讨论】:

    标签: ruby-on-rails ruby json api backbone.js


    【解决方案1】:

    您有 attr_accessiblecal_items_attributes,但您在 json 中使用了 cal_items。

    试试:

    {"calendar":
      {"email":"xxx@gmail.com",
       "cal_items_attributes": 
         [{"url":"http://www.google.com"},{"url":"http://www.yahoo.com"}]
      }
    }
    

    【讨论】:

    • 另外你不需要attr_accessible :cal_items_attributes 因为accepts_nested_attributes_for :cal_items 已经添加了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多