I've googled for solutions for this but I can't quite figure out what I'm doing 
wrong. (Specifically, this post here seems to indicate that it should work but 
it isn't for me 
https://groups.google.com/forum/?fromgroups=#!topic/activescaffold/1mWws5a4Yys)

Here's my code

class Product < ActiveRecord::Base
  has_many :images, :as => :viewable, :order => :position, :dependent => 
:destroy
end


class Image < Asset
  validate :no_attachement_errors
  has_attached_file :attachment,
                    :styles => { :mini => '46x46>',
                                 :small => '181x181>',
                                 :product => '500x500>',
                                 :large => '700x700>',
                                 :at2x => '1000x1000'},
                    :convert_options => { :all => '-strip' },
                    :default_style => :product,
                    :path => "assets/products/:id/:style/:basename.:extension",
                    :storage => :s3,
                    :s3_credentials => "#{Rails.root.to_s}/config/s3.yml",
                    :s3_headers => { 'Cache-Control' => 'max-age=315576000', 
'Expires' => 10.years.from_now.httpdate }
end

class Asset < ActiveRecord::Base
  belongs_to :viewable, :polymorphic => true
  acts_as_list :scope => :viewable
end


class Admin::ProductsController < Admin::ResourceController  
  active_scaffold :product do |config|
    config.actions = [:list, :search, :update, :delete, :create, :nested]
    config.update.link.label = "Edit"
    
    config.nested.add_link(:images)
  end
end

class Admin::ImagesController < Admin::BaseController    
  active_scaffold :image do |config|
    config.actions = [:list, :search,  :update, :delete, :create]
    config.update.link.label = "Edit"    
  end
end


The active scaffold works fine for the Products list page (and create & edit). 
When I got to edit the nested Images, however, (using the "Images" link on one 
of the rows of products), what I'm getting is a result of all the Images in the 
assets table, not restricted to the ones whose viewable_id matches the parent 
Product. 

I can see the SQL in the log file here:

SELECT `assets`.* FROM `assets` WHERE `assets`.`type` IN ('Image') ORDER BY 
`assets`.`id` ASC LIMIT 15 OFFSET 0


This should instead be

SELECT `assets`.* FROM `assets` WHERE `assets`.`type` IN ('Image') AND 
viewable_id = '123' AND viewable_type = 'Product' ORDER BY `assets`.`id` ASC 
LIMIT 15 OFFSET 0


I also tried adding this to the Admin::ProductsHelper

 def options_for_association_conditions(association)
     if association.name == :images
       {'assets.viewable_id' => @record.id}
     else
       super
     end
   end
end


As far as I can tell (using log output and debugging), 
options_for_association_conditions is not getting called :(

What have I missed or done wrong? Shouldn't this work?


Thanks,

Jason




-- 
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails plugin" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/activescaffold?hl=en.

Reply via email to