現在個人アプリでチャットアプリの作成をしています。
今解決したいこととして、グループの消去、編集機能をグルーピを作成したユーザーのみに制限したいです。
今の現状、編集・消去が全てのユーザーができる状態になっています。
groupsコントローラー
def index
@groups = Group.all
end
def new
@group = Group.new
@group.users << current_user
end
def create
# binding.pry
@group = Group.new(group_params)
if @group.save
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)
redirect_to groups_path
else
render :edit
end
end
def destroy
group = Group.find(params[:id])
group.destroy
redirect_to groups_path
end
private
def group_params
params.require(:group).permit(:name, user_ids: [])
end
end
ビュー
.group-main
.group-list
- @groups.each do |group|
.group
= link_to group_messages_path(group), class:"group-link-path"do
%h3.name
= group.name
.group__message
= group.show_last_message
- if user_signed_in? .edit-delete-content = link_to "編集", edit_group_path(group.id), class: "edit-group-info" = link_to "グループの削除", group_path(group.id), method: :delete, class: "delete-group-Btn"
メッセージの消去を同じ感じの制限にする際、メッセージにはuser.idカラムがあるので
if user_signed_in? && current_user.id == message.user_id
でできましたが、グループは中間テーブルを挟んでいて、user.idカラムがないので、
この書き方ではできませんでした。
アドバイスをお願いします。。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。