Ruby Forum Rails-ES > restful_authentification-attachment_fu-Y las rutas

Posted by Andrés gutiérrez (Guest)
on 29.04.2008 17:57
(Received via mailing list)
Hola, estoy siguiendo este tutorial [1] en el que se usan esos dos 
plugins
para conseguir usuarios registrados y con fotos asociadas
attachment_fu -lo uso junto con RMagic e imageMagic

bien, estos son mis archivos:
#Application.html.erb
            <div id='navbar'>
                <ul>
                <li><%= link_to 'Home', view_page_path('home') %></li>
                <li><%= link_to 'Resources', view_page_path('resources')
%></li>
                <li><%= link_to 'About Us', view_page_path('about') 
%></li>
                <li><%= link_to 'Contact Us', view_page_path('contact')
%></li>

                    <% if logged_in? %>
                        <li><%= link_to "Log Out", logout_path %></li>
                        <li><%= link_to "Ver Usuarios MIOS", users_path
%></li>
                        <li><%= link_to "Páginas", pages_path %></li>


                        :::::::::::::::: <li><%= link_to "Mis fotos",
user_photos_path(current_user) %></li> :::::::::::::::


                    <% else %>
                        <li><%= link_to "Log In", login_path %></li>
                    <% end %>

                </ul>
          <div>
Ese link (el que esta entre ::::: )manda a buscar las fotos de ese 
usuario
(registrado)

#photos_controller.rb
def index
    @user = User.find(params[:user_id])
    @photos = Photo.find(:all, :conditions => {:parent_id => nil, 
:user_id
=> @user})
end

#index.html.erb
 Mis fotos:
 <% @photos.each do |p| %>
    <%= link_to image_tag(p.public_filename(:thumb)), 
user_photo_path(@user,
p) %>
 <% end %>

#en public hay una carpeta con el nombre de mi tabla de fotos
(public/photos)

#photo.rb
class Photo < ActiveRecord::Base
belongs_to :user
  has_attachment :content_type => :image,
                 :storage => :file_system,
                 :max_size => 500.kilobytes,
                 :resize_to => '320x200>',
                 :path_prefix => 'public/photos',
                 :thumbnails => { :thumb => '100x100>' }

  validates_as_attachment
end

EL ERROR
Cuando intento acceder desde la pagina (una vez registrado) a las fotos 
de
ese usuario me da este ERROR:
LoadError in PhotosController#index

Expected /mi/path/hasta/mi/controller/photos_controller.rb to define
PhotosController


No sé parece que no encuentre index.html.erb no?

No tengo ninguna imagen subida. Pero no debería de fallar no?

#routes.rb
ActionController::Routing::Routes.draw do |map|
#   map.resources :photos

 #  map.resources :users

    map.resources :users do |user|
        user.resources :photos
    end

Gracias por adelantado



[1] http://www.railsforum.com/viewtopic.php?pid=60803
Posted by Miguel Michelson (samek)
on 29.04.2008 18:17
(Received via mailing list)
y cuando no estas registrado te funciona?

como estas accediendo a la url

algo asi?  /users/1/photos/

Saludos

On Tue, Apr 29, 2008 at 11:56 AM, Andrés gutiérrez 
<andresgutgon@gmail.com>
Posted by Andrés gutiérrez (Guest)
on 29.04.2008 18:46
(Received via mailing list)
>y cuando no estas registrado te funciona?

No, cuando no estoy conectado, no me funciona porque no le doy opción a 
que
se vean las fotos:
                    <% if logged_in? %>
                        <li><%= link_to "Log Out", logout_path %></li>
                        <li><%= link_to "Ver Usuarios MIOS", users_path
%></li>
                        <li><%= link_to "Páginas", pages_path %></li>
                        <li><%= link_to "Mis fotos",
user_photos_path(current_user) %></li>
                    <% else %>
                        <li><%= link_to "Log In", login_path %></li>
                    <% end %>

>como estas accediendo a la url

algo asi?  /users/1/photos/

Si accedo a asi, y me da ese error

2008/4/29 Miguel Michelsongs <miguelmichelson@gmail.com>:
Posted by Miguel Michelson (samek)
on 29.04.2008 18:57
(Received via mailing list)
mmm... no estoy muy seguro, pero no necesitas hacer la consulta

    @photos = Photo.find(:all, :conditions => {:parent_id => nil, 
:user_id
=> @user})

en tu controller, en su lugar puedes acceder a las fotos asi (si estan
relacionadas claro), en la vista

@current_user.photos.first.title  # este es con la sesion variable de
instancia del usuario loggeado

o

@user.photos.first.title  #con el user filtrado por el params[:id]


trata de comentar la parte de las fotos y ve si puedes acceder a la 
vista ,
quizás ahi esta el problema.

suerte



2008/4/29 Andrés gutiérrez <andresgutgon@gmail.com>:
Posted by Andrés gutiérrez (Guest)
on 29.04.2008 19:11
(Received via mailing list)
>>@current_user.photos.first>>.title  # este es con la sesion variable de
instancia del usuario loggeado

>>o

>>@user.photos.first.title  #con el user filtrado por el params[:id]

Que cacao tengo. Esto me dices que lo coloque en la vista index.html.erb 
y
que comente esto:
# @photos = Photo.find(:all, :conditions => {:parent_id => nil, :user_id 
=>
@user})

en #photos_controller.rb???

Es lo que he hecho. pero no sé. recalco que no he subido ninguna foto.
Una pregunta:
La carpeta donde se suben las fotos la creamos nosotros o la crea el 
plugin?

Doy por hecho que Rmagic e imageMagic los tengo correctamente 
instalados,
porque he hecho las comprobaciones que me sugerían en sus páginas:
ej.:
irb -rubygems -r RMagick
irb(main):001:0> puts Magick::Long_version
This is RMagick 2.3.0 ($Date: 2008/03/29 15:23:12 $) Copyright (C) 2008 
by
Timothy P. Hunter
Built with ImageMagick 6.4.0 04/28/08 Q16 http://www.imagemagick.org
Built for ruby 1.8.6
Web page: http://rmagick.rubyforge.org
Email: rmagick@rubyforge.org
=> nil

Lo mismo para imageMagic, entonces creo que es algo que hago mal en la 
App
Rails. Hay que poner algo en Enviroment.rb ???


El día 29 de abril de 2008 18:56, Miguel Michelsongs <
miguelmichelson@gmail.com> escribió:
Posted by Miguel Michelson (samek)
on 29.04.2008 19:15
(Received via mailing list)
2008/4/29 Andrés gutiérrez <andresgutgon@gmail.com>:
Posted by Andrés gutiérrez (Guest)
on 29.04.2008 19:19
(Received via mailing list)
lo siento, no veo lo que has escrito

El día 29 de abril de 2008 19:14, Miguel Michelsongs <
miguelmichelson@gmail.com> escribió:
Posted by Miguel Michelson (samek)
on 29.04.2008 19:35
(Received via mailing list)
ah disculpa, no me di cuenta.


1º intentar acceder al recurso , sin consultar las imagenes solo el 
user, y
ver si se carga el index de photos, y ver si el rpoblema esta ahi, en la
consulta de las imagenes
2º creo que deberias probar que efectivamente el upload fuciona
correctamente.

Que cacao tengo. Esto me dices que lo coloque en la vista index.html.erb 
y
que comente esto:
# @photos = Photo.find(:all, :conditions => {:parent_id => nil, :user_id 
=>
@user})

si, eso que te dije iria en la vista, o bien en tu controller puedes 
hacer

@photos = @user.photos


Saludos

2008/4/29 Andrés gutiérrez <andresgutgon@gmail.com>:
Posted by Andrés gutiérrez (Guest)
on 29.04.2008 19:41
(Received via mailing list)
>>1º intentar acceder al recurso , sin consultar las imagenes solo el user,
y ver si se carga el index de photos, y ver si el rpoblema esta ahi, en 
la
consulta de >>las imagenes

A esto te respondo ya. No se carga el index de photos. El ERROR que me 
da
cuando yo intento acceder asi:
<%= link_to "Mis fotos", user_photos_path(current_user) %>

Es este:
LoadError in PhotosController#index

Expected /mi/path/hasta/mi/controller/photos_controller.rb to define
PhotosController

Ahora provare lo segundo



El día 29 de abril de 2008 19:27, Miguel Michelsongs <
miguelmichelson@gmail.com> escribió:
Posted by Andrés gutiérrez (Guest)
on 29.04.2008 19:43
(Received via mailing list)
>>2º creo que deberias probar que efectivamente el upload fuciona
correctamente.

El upload tampoco puedo hacerlo, me da el mismo error cuando yo 
introduzco
esto en el navegador:
http://localhost:3000/users/1/photos/new



El día 29 de abril de 2008 19:40, Andrés gutiérrez 
<andresgutgon@gmail.com>
escribió:
Posted by Andrés gutiérrez (Guest)
on 29.04.2008 20:00
(Received via mailing list)
He encontrado el error. Aque no sabes lo que era???

class PhotosController < ApplicationController

Me habia dejado de poner esto en el controller de photos y entonces no
encontraba ningun metodo de ese controlador. Es que he copiado el codigo 
del
tutorial y se me ha quedado esa linea. ERROOOOOOORRRR de NOVATISSSIMO. 
Por
si no lo he dicho ya, soy novato y ademas gilipollas (perdón por el 
tako)

Gracias miguel, voy a seguir usando la App a ver que otros errores 
tontos y
no me encuentro

Un saludo,
Andres

El día 29 de abril de 2008 19:42, Andrés gutiérrez 
<andresgutgon@gmail.com>
escribió:
Posted by Miguel Michelson (samek)
on 29.04.2008 20:55
(Received via mailing list)
genial :D



2008/4/29 Andrés gutiérrez <andresgutgon@gmail.com>: