如何检查仅特定用户的记录是否存在?

时间:2018-08-31 16:29:35

标签: sql ruby activerecord sinatra

现在在我的POST路线中,我有这个:

post '/states' do
  if logged_in? && params[:state_name] != ""
    @state = State.find_or_create_by(:state_name => params[:state_name])
      if @state.users.exists?
        "You have already added this state."
      else
        @state.users << current_user
        redirect "/states"
       end

如果用户两次添加相同状态,他们将收到错误消息,并且不会向数据库添加重复项。很好,但是当NEW用户添加相同的状态时,他们会收到相同的错误消息。如何检查记录是否仅针对current_user存在?如果不存在,我希望将current_user添加到@ states.users。

我尝试了很多不同的方法,但似乎无法使其正常工作。

1 个答案:

答案 0 :(得分:0)

您想要的是...

  if @state.users.include? current_user
    "You have already added this state."
  else