ruby-on-rails - 将 has_many 添加到 ActiveModel::Serializer 的问题

标签 ruby-on-rails ruby active-model-serializers

一段时间以来,我一直在尝试将 has_many 关系添加到我的 ActiveModel::Serializers 中,但我遇到了一大堆与它们相关的错误。似乎 has_many 关系正在调用错误的序列化程序。这是错误:

Started GET "/vehicles/1001" for 127.0.0.1 at 2013-04-11 01:07:08 -0700
Processing by UsersController#index as JSON
  Parameters: {"user"=>{}}
  [1m[36mUser Load (0.2ms)[0m  [1mSELECT `users`.* FROM `users` [0m
Processing by VehiclesController#show as JSON
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.2ms)
  Parameters: {"id"=>"1001", "vehicle"=>{}}
  [1m[35mVehicle Load (0.6ms)[0m  SELECT `vehicles`.* FROM `vehicles` WHERE `vehicles`.`id` = 1001 LIMIT 1


Started GET "/vendor_reps" for 127.0.0.1 at 2013-04-11 01:07:08 -0700
Completed 500 Internal Server Error in 4ms

NoMethodError (undefined method `serializable_hash' for #<ActiveModel::ArraySerializer:0x007fbbcaa82018>):
  app/controllers/vehicles_controller.rb:20:in `block (2 levels) in show'
  app/controllers/vehicles_controller.rb:18:in `show'


Processing by VendorRepsController#index as JSON
  Parameters: {"vendor_rep"=>{}}
  [1m[35mVendorRep Load (0.3ms)[0m  SELECT `vendor_reps`.* FROM `vendor_reps` 
Completed 200 OK in 2ms (Views: 0.3ms | ActiveRecord: 0.3ms)
  Rendered /Users/pzuraq/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.3ms)
  Rendered /Users/pzuraq/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
  Rendered /Users/pzuraq/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (11.7ms)

代码在这里:https://gist.github.com/pzuraq/5361607

最佳答案

事实证明,使用 :option 作为属性名称会导致冲突。可能还有其他相互冲突的名称。一定要小心命名空间!

关于ruby-on-rails - 将 has_many 添加到 ActiveModel::Serializer 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15944179/

相关文章:

ruby-on-rails - 尝试升级 rails 依赖项会导致序列化程序引发错误 : undefined method `model_name' for Hash:Clas

ruby-on-rails-4 - 使用 Active Model Serializers,您如何渲染部分?

mysql - Openshift 中 RoR Mysql 部署的问题

ruby-on-rails - 无法使用附件在 heroku 上运行 Rails 控制台:附件的未定义方法 `respond_to'::CorsController:Class

ruby-on-rails - 嵌套连接表上的 Rails 4 where 子句

ruby-on-rails - 联系第 3 方 API 时的错误处理

css - Bootstrap 3 下拉菜单拒绝在 Rails 4 中工作

ruby - 检查(非子)进程是否正在运行的跨平台方法

ruby-on-rails - 事件模型序列化程序和自定义 JSON 结构

ruby - 为什么 Ruby cross_product 返回的值与纸上的叉积不同