如何通过许多模型来定位多态模型

时间:2018-03-26 13:57:53

标签: ruby-on-rails ruby-on-rails-5

我有4个班级:

class User < ApplicationRecord
  has_many :memories
  has_many :playlists
  has_many :items, as: 'playlist_items', through: :playlists
  has_many :items, as: 'memory_items', through: :memories
end

class Item < ApplicationRecord
 belongs_to :itemable, polymorphic: true, optional: true
end

class Playlist < ApplicationRecord
  belongs_to :user

  has_many :items, as: :itemable, dependent: :destroy
  accepts_nested_attributes_for :items, allow_destroy: true
end

class Memory < ApplicationRecord
  belongs_to :user

  has_many :items, as: :itemable, dependent: :destroy
  accepts_nested_attributes_for :items, allow_destroy: true
end

我希望能够从current_user获取任何类型的项目,即内存或播放列表。但是现在我只能得到1套..如果我在用户中有这个:

has_many :items, through: :playlists

我目前无法弄清楚如何在列表中执行这两项操作。 &#39;作为&#39;似乎没有效果。任何建议都会非常有用吗?

1 个答案:

答案 0 :(得分:1)

您不能同时拥有相同名称的关联,您可以专门指定源。试试这样:

user.playlist_items

当然,您使用user.memory_itemsimport com.jayway.jsonpath.JsonPath if (prev.getResponseCode() == '200') { def responseText = JsonPath.read(prev.getResponseDataAsString(),'$.MessageObj.Text').get(0) vars.put('ResponseText', responseText) } else { vars.put('ResponseText','Response code is: ' + prev.getResponseCode()) } 代替。