前提・実現したいこと
ここに質問の内容を詳しく書いてください。
railsでユーザーを、グループに所属させる機能を作りたいです。調べていると、userモデル、groupモデルを作成し、中間テーブルであるgroup_userモデルを作ることが定石とあったため、モデルは作成したのですがどのように中間テーブルへデータを保存したらいいのか分かりません。
イメージしている機能ですが、ユーザーのviewで新規登録時とプロフィール編集時に存在しているグループを選んで参加する機能をつけたいです。
該当のソースコード
group.rb class Group < ApplicationRecord has_many :group_users has_many :users, through: :group_users validates :name, presence: true, uniqueness: true end
group_user.rb class GroupUser < ApplicationRecord belongs_to :user belongs_to :group end ``` ``` user.rb class User < ApplicationRecord has_many :microposts, dependent: :destroy has_many :comment, dependent: :destroy has_many :likes, dependent: :destroy has_many :group_users has_many :groups, through: :group_users 以下省略 ``` 上記の通り、各サイトを参考にしております。 ``` groups_controller.rb class GroupsController < ApplicationController def new @group = Group.new end def index @groups = Group.all @group = Group.find_by(id: params[:id]) end def create @group = Group.new(group_params) if @group.save flash[:success] = "グループを作成しました" redirect_to groups_path else render :new end end def edit @group = Group.find(params[:id]) end def update @group = Group.find(params[:id]) if @group.update(group_params) flash[:success] = "グループ名が編集されました" redirect_to groups_path else render 'edit' end end def destroy Group.find(params[:id]).destroy flash[:success] = "グループを削除しました" redirect_to root_path end private def group_params params.require(:group).permit(:name, user_id: [] ) end end ``` マイクロポストやユーザーコントローラを参考にし、新規作成、編集、削除機能は作成しました。 ### 補足情報(FW/ツールのバージョンなど) 環境です。 gem 'rails', '~> 6.0.3', '>= 6.0.3.2' gem 'sqlite3', '~> 1.4' ご不明点や他情報必要でしたらご指摘のほどお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。