Rails新手所以忍受我...
我创建了一个日历应用,日历的所有者可以将其他用户添加到日历中。我刚刚意识到他们可以多次添加同一个用户,这显然是我不想要的。我尝试了很多不同的东西,包括检查模型内部的方法,那些不起作用......我正在使用包含来验证......
我控制器中的当前方法是:
def update
if @calendar.calendar_admin?(current_user)
@new_user = User.find(params[:calendar][:user_ids])
if @calendar.users.includes(@new_user)
redirect_to user_calendar_path(@calendar), notice: 'This user has already been added to this calendar.'
else
@calendar.users << @new_user
if @calendar.save
redirect_to user_calendar_path(@calendar), notice: 'Your calendar has been updated.'
else
redirect_to user_calendar_path(@calendar)
end
end
end
end
端
无论怎样,它都会被“此用户已添加到此日历”所困扰,即使用户没有。我正在铲除新用户,但我甚至不确定这是否是添加新用户的正确方式?
输入
答案 0 :(得分:1)
您想使用include?
代替includes
。
include?
根据集合是否包含特定项目返回布尔值。 includes
是一种不同的方法,它将返回一个真正的非零值。