###実現したいこと
下記のxxxxxx(グループに所属していない場合)に入る条件分岐を知りたい。
※(所属している場合の条件分岐、でも逆にするだけだのでそれでも大丈夫です)
view
1<% @groups.each do |group| %> 2 <p>・<%= group.name %></p> 3 <% if xxxxxx %> 4 <%= link_to("加入する", "/group/#{group.id}/join", method: :post, data: {confirm: 'グループを加入しますか?'}) %> 5 <% else %> 6 <%= link_to("詳細をみる", "/group/#{group.id}", method: :get) %> 7 <% end %> 8<% end %>
現在、ユーザーとgroupが多対多の状態になっており、group_userの中間テーブルで繋いでいます。
###コード
migration
1class CreateGroups < ActiveRecord::Migration[5.2] 2 def change 3 create_table :groups do |t| 4 t.string :name 5 t.integer :user_id 6 t.text :content 7 t.timestamps 8 end 9 end 10end 11class CreateGroupUsers < ActiveRecord::Migration[5.2] 12 def change 13 create_table :group_users do |t| 14 t.references :group, foreign_key: true 15 t.references :user, foreign_key: true 16 t.timestamps 17 end 18 end 19end
model
1#group.rb 2class Group < ApplicationRecord 3 has_many :group_users 4 has_many :users, through: :group_users 5end 6#group_user.rb 7class GroupUser < ApplicationRecord 8 belongs_to :group 9 belongs_to :user 10end 11#user.rb 12class User < ApplicationRecord 13 has_many :group_users 14 has_many :groups, through: :group_users 15end
Controller
1def index 2 @groups = Group.all 3 end 4 def join 5 @groups = Group.all 6 @group = Group.find_by(id: params[:id]) 7 @group.users << @current_user 8 flash[:notice] = "グループに加入しました" 9 render :index 10 end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/02 12:55
2020/03/02 13:04
2020/03/03 09:21