Ho una tabella "Mi piace" con colonne business_id, user_id e piaciuto (0,1) e una funzione 'change_like_status'.Valore di aggiornamento con first_or_create in rail
Ora su ogni chiamata di funzione, se il valore è 1 quindi impostare a 0 (o viceversa) e non se record non esiste quindi creare uno con valore 1.
Procedimento first_or_create funziona bene ma come posso cambiare il valore della colonna "Mi piace" mentre utilizzo questo metodo?
Qui è la mia funzione:
def change_like_status
if current_user.present?
status = Like.where("business_id = ? AND user_id = ?",params['id'],current_user.id).first_or_create(:business_id => params['id'],:user_id => current_user.id,:liked => '1')
abort status.inspect
else
return render :json => {:status => false,:msg=>"You need to sign in before performing this action."}
end
end
funziona !!! Grazie mille :) – manoj
questo è un codice veramente cattivo :-) –
invece di update_attributes u puoi usare update_column che non chiamerà i callbacks e scrive solo in DB –