encontró 1 resultados, pero estaba buscando 2

Estoy usando la gema carrierwave en una aplicación de rails 3 para cargar imágenes de perfil. En la página de inicio de un usuario hay un enlace para cambiar su foto de perfil. Para obtener la identificación del registro de la imagen de perfil, tengo lo siguiente en el controlador de inicio de usuario:

  @profile_picture = ProfilePicture.find("user_id = ?", current_user.id)

  # if no profile picture record, create one
  if @profile_picture.empty?
    ProfilePicture.create(:picture => "", :user_id => current_user.id )
  end

Estoy teniendo el siguiente error:

Couldn't find all ProfilePictures with IDs (user_id = ?, 1) (found 1 results, but was looking for 2)

No había visto este error antes y una búsqueda en la web no produjo nada útil.

Gracias.

preguntado el 18 de junio de 11 a las 02:06

su error se debe a un error en su primera find línea, pero a continuación he mostrado una forma de hacer todo lo que publicó en una línea. -

3 Respuestas

Puede lograr todo eso (y corregir su error) con una línea:

@profile_picture = ProfilePicture.find_or_create_by_user_id(:user_id => current_user.id, :picture => "")

Respondido el 18 de junio de 11 a las 09:06

Este es definitivamente el camino a seguir, pero creo que aquí hay un error. El método find_or_create_by_user_id debe tomar dos argumentos: el ID de usuario primero y un hash opcional de otros atributos en segundo lugar: f_o_c_b_u_i (current_user.id,: picture => "") - Rob Davis

Al find El método toma una lista de identificadores, no un fragmento de código SQL. Pasó dos argumentos y asumió que ambos eran identificadores. No encontró nada. En cambio, creo que quieres esto:

@profile_picture = ProfilePicture.find_by_user_id(current_user.id)

Respondido el 18 de junio de 11 a las 09:06

Soy nuevo en RoR, pero me preguntaba si puedes usar ProfilePicture.find_by_owner(owner_id) or

ProfilePicture.find_by_sql("SELECT * FROM ProfilePicture WHERE owner.id = current_user.id")

No sé, solo tirando mis dos centavos (y tratando de aprender Ruby on Rails)

--EDITAR--

Por cierto, creo esta publicación Podría ser útil.

contestado el 23 de mayo de 17 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.