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
on 29.04.2008 17:57
on 29.04.2008 18:17
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>
on 29.04.2008 18:46
>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>:
on 29.04.2008 18:57
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>:
on 29.04.2008 19:11
>>@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ó:
on 29.04.2008 19:15
2008/4/29 Andrés gutiérrez <andresgutgon@gmail.com>:
on 29.04.2008 19:19
lo siento, no veo lo que has escrito El día 29 de abril de 2008 19:14, Miguel Michelsongs < miguelmichelson@gmail.com> escribió:
on 29.04.2008 19:35
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>:
on 29.04.2008 19:41
>>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ó:
on 29.04.2008 19:43
>>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ó:
on 29.04.2008 20:00
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ó:
on 29.04.2008 20:55
genial :D 2008/4/29 Andrés gutiérrez <andresgutgon@gmail.com>: