Present the structure of the model as follows:
models / cross _sell_promotion.rb
class CrossSellPromotion < Promotion
has_and_belongs_to_many :afflicted_products, :join_table => :promotion_afflicted_products, :foreign_key => 'promotion_id', :association_foreign_key => 'product_id', :class_name => 'Product'
has_and_belongs_to_many :afflicted_categories, :join_table => :promotion_afflicted_categories, :foreign_key => 'promotion_id', :association_foreign_key => 'category_id', :class_name => 'Category'
. . .
end
models /promotion.rb
class Promotion < ActiveRecord::Base
has_and_belongs_to_many :products, :join_table => :promotions_products
has_and_belongs_to_many :categories, :join_table => :promotions_categories
- - -
end
and tables as follows:
table promotions
type :string
...some other fields unrelated to this problem
table promotions_products
promotion_id :integer
product_id :integer
table promotion_afflicted_products
promotion_id :integer
product_id :integer
table promotion_afflicted_categories
promotion_id :integer
category_id :integer
Then I have the appliances as follows:
cross_sell_1:
products: plumeboom_1, plumeboom_2
value: 100
value_type: percentage
type: CrossSellPromotion
plumeboom_1:
model: plumeboom1
url: plumeboom-1
plumeboom_2:
model: plumeboom2
url: plumeboom-2
plumeboom_3:
model: plumeboom3
url: plumeboom-3
When I run my unit test, it returns this error message:
1) Error:
test_the_truth(CartTest):
NoMethodError: undefined method `singularize' for :promotions_products:Symbol
Please let me know if you have had a similar experience or if you know how to fix it, or at least what you think might be wrong, I’m ready to try something!
Thank you very much, please feel free to answer ... really desperate here!