【发布时间】:2018-01-20 04:36:47
【问题描述】:
我有 3 个模型 - 团队、用户和团队用户(has_name:通过)。以编辑和新团队的形式,可以通过自动完成输入动态添加该团队的成员。
app/models/user.rb
class User < ApplicationRecord
has_many :team_users
has_many :teams, through: :team_users
accepts_nested_attributes_for :team_users, :teams, allow_destroy: true
end
app/models/team.rb
class Team < ApplicationRecord
has_many :team_users
has_many :users, through: :team_users
accepts_nested_attributes_for :team_users, allow_destroy: true, reject_if: proc { |a| a['user_id'].blank? }
end
app/models/team_user.rb
class TeamUser < ApplicationRecord
belongs_to :team
belongs_to :user
accepts_nested_attributes_for :team, :user, allow_destroy: true
end
我需要这样的东西:
我遇到的问题:
- Cocoon Gem 仅生成空字段,或者我将在呈现模板时创建。我需要找到一个用户并将他添加到团队中(在不可编辑的字段中)
- 如果我使用 AJAX,
@team = Team.new仅在TeamsController中的新操作中运行,并且当 AJAX 尝试创建team_user对象时,Rails 不会记住创建的@team。要创建team_user模型的对象需要运行@team.team_users.build(user_id: params[:user_id])。user_id我从自动完成字段中获得,但不知道@team和team_id(例如,在new操作中TeamsController)。
【问题讨论】:
标签: ruby-on-rails ajax autocomplete nested-forms has-many-through