【问题标题】:jbuilder access to nested modelsjbuilder 访问嵌套模型
【发布时间】:2018-02-26 17:36:13
【问题描述】:

Parent

belongs_to :condition
has_many   :conditionregions, through: :condition

Condition

translates :description, :fallbacks_for_empty_translations => true
globalize_accessors

班级Conditionregion

belongs_to :region

使用 jbuilder,关联可以链接到父定义的亲属,包括翻译,

json.conditionregions @event.condition.conditionregions, :region_id
json.translations @event.condition.translations, :locale, :description

但是,提取关系的相关数据会返回NoMethodError undefined methodregion`

json.regions @event.condition.conditionregions.region, :name

如何访问后面的信息?模型是否也必须链接下来(以及如何做到这一点?)还是有一个语法环可以跳过?

【问题讨论】:

    标签: ruby-on-rails json jbuilder


    【解决方案1】:

    试试这个,

    json.regions @event.condition.conditionregions.joins(:region).pluck('region.name')
    

    【讨论】:

    • 很遗憾没有。 `PG::UndefinedTable: 错误:缺少表“区域”的 FROM 子句条目
    • 区域模型映射的表名是什么?地区?如果是这样,请尝试...pluck('regions.name')
    • 不,是region。我不确定 jbuilder 是否允许链接过去 model.rb 文件中定义的 si 。评论暗示了这一事实,而 gem 说明提供了这样做的途径......
    【解决方案2】:

    RTFM,as per gem instructions

    json.regions @event.condition.conditionregions do |conditionregion|
      json.name conditionregion.region.name
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多