【问题标题】:Weird problem with json rendering of model of relationship in Rails 3.0.4Rails 3.0.4 中关系模型的 json 渲染的奇怪问题
【发布时间】:2011-03-03 12:10:11
【问题描述】:

我通过 one_to_many 建立了关系:尽管关系:

  has_one :todays_order, :through => :patient_orders, :source => :daily_order ,:conditions => ["order_for_date = ?", Date.today]

但是当我想在这样的控制器中呈现它时:

    respond_with(@daily_order = Patient.find(params[:patient_id]).todays_order)

我会得到以下回复:

{"marked_for_destruction"=>false, “更改属性”=>{}, “属性”=> {"additional_information"=>"....", "id"=>"594369222"}, “只读”=>假, “错误”=>{}, "previous_changed"=>{}, “销毁”=>假, “属性缓存”=>{}, "new_record"=>假}

但输出应该是这样的:

{"additional_information"=>"....", "id"=>"594369222"}

这里有什么问题?

P.S.:您可以找到完整的 Controller 和 Model:http://pastebin.com/VSbvesTn

【问题讨论】:

  • 你能发布完整的动作代码(甚至是控制器)吗?
  • 你为什么不用render :json => @daily_order
  • 同样从你的输出中,你可以通过respond_with(@daily_order["attributes"])得到想要的输出
  • 您可以在pastebin.com/VSbvesTn找到完整的控制器和型号

标签: ruby-on-rails ruby json activerecord relationship


【解决方案1】:

通过不渲染 patient.todays_order “关系”来解决问题,而是渲染 AR 查询的结果。 所以我认为你不能直接在 Rails 中渲染关系对象。

【讨论】:

    猜你喜欢
    • 2014-02-15
    • 2014-02-20
    • 2012-08-25
    • 1970-01-01
    • 2017-01-22
    • 2011-08-23
    • 2021-08-16
    • 2011-07-30
    • 2023-01-02
    相关资源
    最近更新 更多