Daniel Amsterdam
2011-Jul-28 10:34 UTC
starter question about paperclip / relations in rails 3
Hello, i''m trying out Rails 3 and i''ve created a little app with paperclip. My problem is that i cant get the assets for a user in the index action but in the edit action it works. i have the flowing set up class User has_many :assets class Asset belongs_to :user has_attached_file :asset, :styles => { :medium => "300x300>", :thumb => "100x100>" } ------ In my edit action i can get the assets for the user easy by doing: <% f.fields_for :assets do |asset_fields| %> <% unless asset_fields.object.new_record? %> <tr> <td><%= link_to image_tag(asset_fields.object.asset.url(:thumb)), asset_fields.object.asset.url(:original) %></td> <td><%= f.label :destroy, ''Verwijder'' %></td> <td><%= asset_fields.check_box(:_destroy) %></td> </tr> <% end %> <% end %> Now in my index action i want to display the user.assets also but i get the error undefined method `url'' for xx in the user controler i get the users by @users = User.all(:include => :assets) #@users = User.all() in the view i have <% @users.each do |user| %> <div id="<%= user.id %>" class="profile_box"> <%= user.firstname %><%= user.lastname %> <%= debug(user) %> <% unless current_user.nil? %> <% if current_user.id == user.id %> <%= link_to "Edit", edit_user_path(user) %> <% end %> <% end %> <%= debug(user.assets) %> <% user.assets.each do |assetfield| %> <%= assetfield.url(:thumb) %> <% end %> </div> <% end %> and i get the error undefined method `url'' for #<Asset: 0x000001058cce08> so the asset object is not there i gues. I''m having trouble to understand whats wrong because the realtion is fine. I hop somebody here can help me understand this and help me out? thanks in advance! -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Alejandro Cadavid
2011-Jul-28 13:27 UTC
Re: starter question about paperclip / relations in rails 3
Hey When you do (user.assets.each do |assetfield|) you are getting each Asset object associated to user in the assetfield variable, but still you need to access the attachment property which is ''asset''. So basically you just need to change assetfield.url(:thumb) for assetfield.asset.url(:thumb) and it should work fine. Check that this is done in the edit form as asset_fields.object.asset.url(:thumb) (where asset_fields.object represents the same Asset object as assetfield) Hope this helps. Good luck! On Thu, Jul 28, 2011 at 5:34 AM, Daniel Amsterdam <danielbwa-uAjRD0nVeow@public.gmane.org> wrote:> Hello, > > i''m trying out Rails 3 and i''ve created a little app with paperclip. > My problem is that i cant get the assets for a user in the index > action but in the edit action it works. i have the flowing set up > > class User > has_many :assets > > class Asset > belongs_to :user > has_attached_file :asset, > :styles => { :medium => "300x300>", > :thumb => "100x100>" } > > ------ > > In my edit action i can get the assets for the user easy by doing: > > <% f.fields_for :assets do |asset_fields| %> > > <% unless asset_fields.object.new_record? %> > > <tr> > <td><%= link_to > image_tag(asset_fields.object.asset.url(:thumb)), > asset_fields.object.asset.url(:original) %></td> > <td><%= f.label :destroy, ''Verwijder'' > %></td> > <td><%= asset_fields.check_box(:_destroy) > %></td> > </tr> > <% end %> > <% end %> > > Now in my index action i want to display the user.assets also but i > get the error undefined method `url'' for xx > > in the user controler i get the users by > @users = User.all(:include => :assets) > #@users = User.all() > > in the view i have > <% @users.each do |user| %> > <div id="<%= user.id %>" class="profile_box"> > <%= user.firstname %><%= user.lastname %> > <%= debug(user) %> > <% unless current_user.nil? %> > <% if current_user.id == user.id %> > <%= link_to "Edit", > edit_user_path(user) %> > <% end %> > <% end %> > <%= debug(user.assets) %> > <% user.assets.each do |assetfield| %> > <%= assetfield.url(:thumb) %> > <% end %> > > </div> > <% end %> > > and i get the error undefined method `url'' for #<Asset: > 0x000001058cce08> so the asset object is not there i gues. I''m having > trouble to understand whats wrong because the realtion is fine. I hop > somebody here can help me understand this and help me out? > > thanks in advance! > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Daniel Amsterdam
2011-Jul-29 08:04 UTC
Re: starter question about paperclip / relations in rails 3
Alejandro, Thank you for taking the time to answer my question and you where right. just by refering the asset object by assetfield.asset.url(:thumb) it worked perfect. On 28 jul, 15:27, Alejandro Cadavid <acada...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hey > > When you do (user.assets.each do |assetfield|) you are getting each Asset > object associated to user in the assetfield variable, but still you need to > access the attachment property which is ''asset''. So basically you just need > to change assetfield.url(:thumb) for assetfield.asset.url(:thumb) and it > should work fine. Check that this is done in the edit form > as asset_fields.object.asset.url(:thumb) (where asset_fields.object > represents the same Asset object as assetfield) > > Hope this helps. Good luck! > > > > > > > > On Thu, Jul 28, 2011 at 5:34 AM, Daniel Amsterdam <daniel...-uAjRD0nVeow@public.gmane.org> wrote: > > Hello, > > > i''m trying out Rails 3 and i''ve created a little app with paperclip. > > My problem is that i cant get the assets for a user in the index > > action but in the edit action it works. i have the flowing set up > > > class User > > has_many :assets > > > class Asset > > belongs_to :user > > has_attached_file :asset, > > :styles => { :medium => "300x300>", > > :thumb => "100x100>" } > > > ------ > > > In my edit action i can get the assets for the user easy by doing: > > > <% f.fields_for :assets do |asset_fields| %> > > > <% unless asset_fields.object.new_record? %> > > > <tr> > > <td><%= link_to > > image_tag(asset_fields.object.asset.url(:thumb)), > > asset_fields.object.asset.url(:original) %></td> > > <td><%= f.label :destroy, ''Verwijder'' > > %></td> > > <td><%= asset_fields.check_box(:_destroy) > > %></td> > > </tr> > > <% end %> > > <% end %> > > > Now in my index action i want to display the user.assets also but i > > get the error undefined method `url'' for xx > > > in the user controler i get the users by > > @users = User.all(:include => :assets) > > #@users = User.all() > > > in the view i have > > <% @users.each do |user| %> > > <div id="<%= user.id %>" class="profile_box"> > > <%= user.firstname %><%= user.lastname %> > > <%= debug(user) %> > > <% unless current_user.nil? %> > > <% if current_user.id == user.id %> > > <%= link_to "Edit", > > edit_user_path(user) %> > > <% end %> > > <% end %> > > <%= debug(user.assets) %> > > <% user.assets.each do |assetfield| %> > > <%= assetfield.url(:thumb) %> > > <% end %> > > > </div> > > <% end %> > > > and i get the error undefined method `url'' for #<Asset: > > 0x000001058cce08> so the asset object is not there i gues. I''m having > > trouble to understand whats wrong because the realtion is fine. I hop > > somebody here can help me understand this and help me out? > > > thanks in advance! > > > -- > > You received this message because you are subscribed to the Google Groups > > "Ruby on Rails: Talk" group. > > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To unsubscribe from this group, send email to > > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > For more options, visit this group at > >http://groups.google.com/group/rubyonrails-talk?hl=en.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.