gpt4 book ai didi

ruby-on-rails - 嵌套 :has_many, :通过属性

转载 作者:行者123 更新时间:2023-12-04 07:30:18 24 4
gpt4 key购买 nike

我正在使用 has_many :through 通过名为 list_items 的传递在两个模型之间创建关联:

用户.rb:

  has_many :list_items
has_many :wishes, :through => :list_items

希望.rb:

  has_many :list_items
has_many :users, :through => :list_items

list_item.rb:

  belongs_to :user
belongs_to :wish

这很好用,但是, list_items 具有模型的附加属性 wishes 我想根据 用户 的条件访问这些属性>(准确地说是 current_user )。我目前可以使用如下代码访问此属性:

wishes_controller.rb:

  @wishes = current_user.wishes

index.html.haml:

 -wish.list_items.each do |list_item|
-if list_item.user_id == current_user.id
=list_item.list_position

这很好用,但是,我敢打赌有一种更优雅的方法可以做到这一点,能够像 wishes.list_position 一样访问它(这将根据 current_user id 提取适当的 list_position ).我看过herehere (以及许多其他地方)但我无法将这些概念转化为我的项目。

最佳答案

查看 Need data from rails join table, has_many :through

试试这个。
用户.rb:

has_many :wishes, :through => :list_items, :select => 'wishes.*, list_items.list_position as list_position'

这给你:

- @wishes.each do |wish|
= wish.list_position

关于ruby-on-rails - 嵌套 :has_many, :通过属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9355458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com