複数のユーザーを持つSNSアプリでグループを作成しようとしています。 グループhas_manyからGroups_usersまでのユーザー。Rails:ネストされたフォームで複数の子レコードを作成
ここではグループを作成するフォームがあり、グループにメンバー(Groups_users)を同時に追加したいと考えています。 グループを作成すると同時にグループに1人のメンバーを追加することに成功しましたが、グループに複数のメンバーを追加することはできません。
ここに私のコードだ:
モデル:
group.rb
class Group < ApplicationRecord
validates :name, presence: true, uniqueness: true
validates :owner_user_id, presence: true
has_many :groups_users, inverse_of: :group
has_many :users, through: :groups_users
accepts_nested_attributes_for :groups_users
has_many :group_posts
end
groups_user.rb
class GroupsUser < ApplicationRecord
belongs_to :group, inverse_of: :groups_users
belongs_to :user
validates :group, presence: true
validates :user_id, presence: true
end
コントローラ:
groups_controller.rb
module Users
module Users
class GroupsController < BaseController
def index
@group = Group.new
@group.groups_users.build
@groups = Group.all
end
def create
group = Group.new(group_params)
if group.save!
redirect_to users_groups_path, notice: 'a new group created!'
else
redirect_to users_groups_path, notice: 'The selected group name has already been taken.'
end
end
private
def group_params
params.require(:group).permit(:name, :owner_user_id, groups_users_attributes: [:user_id])
end
end
end
end
再生回数:index.html.slim
グループ/
注:私は削除した場合
- :ビューファイルから{複数の真}、それが働きました私は同時に複数のメンバーを追加したいと思います。
- 私はdevise gemを使用していますので、current_userはログインしているユーザーです。
- mutual_followers:フォローしているユーザー(あなたのUser.rbで定義されていますが、私は質問したくありません)長すぎる)。
私はuser_idの配列を1つのuser_idとして挿入するため、私のコードは機能しませんが、この問題の解決方法はわかりません。
P.S. Nested Simple Form in Rails4 - has many through, save multiple records
しかし、私はsimple_formを使用していないため、私の問題を解決する方法を見つけることができず、form_forでその違いを補う方法を見つけることができませんでした。