首页 > 解决方案 > 如何区分来自 simple_form_for 中同一个表的两个集合字段?

问题描述

我创建了一个允许用户交易视频游戏的应用程序。当 auser想要 agame时,他点击“交易”按钮,atrade被自动创建并被重定向到trade节目。

在那里,他必须填写一个 simple_form_for。我想让他选择从所有者的游戏中添加一些其他游戏,但也可以从他自己的收藏中添加一些游戏。例如“我向你推荐我的 3 场比赛和你的 2 场比赛”)。

正如您在下面我的数据库架构中看到的那样,一个trade has_many trade_games. 为了帮助轻松管理我的嵌套属性,我使用了 abyme gem。问题是我不知道如何将我收藏的游戏与其他用户的游戏区分开来。在我的表格中,我需要做这样的事情:

<%= simple_form_for @trade do |f| %>
  <%= f.abyme_for(:asker_games) do |abyme| %>
    <%= abyme.records %>
    <%= abyme.new_records %>
    <%= add_associated_record %>
  <% end %>

  <%= f.abyme_for(:receiver_games) do |abyme| %>
    <%= abyme.records %>
    <%= abyme.new_records %>
    <%= add_associated_record %>
  <% end %>
<% end %>

哪里asker_games是我的游戏的集合,并且receiver_games来自其他用户。

你知道我该如何处理吗?我想用类似的东西使用范围:scope :owner_is, -> (user) { includes(:game).where(games: { owner: user }) }在trade_game.rb中,但我如何在trade.rb的两个关联中使用它?

  has_many :asker_games, inverse_of: :trade, class_name: "TradeGame"
  has_many :receiver_games, inverse_of: :trade, class_name: "TradeGame"

我希望我的问题很清楚。感谢您的帮助。

在此处输入图像描述

标签: ruby-on-railsassociationssimple-formnested-attributeshas-many

解决方案


推荐阅读