This is really driving me insane. I've something very similar to your sample Here <https://github.com/rafaeladel/seven_event>. I've specified table names inside models. But still the error occurs. Would you mind taking a look at it ? Thank you a lot so far for your time.
On Thursday, April 30, 2015 at 3:59:45 PM UTC+3, Chris Lerum wrote: > > https://github.com/chrislerum/factory setting table_name seems to be the > sweet spot, working now > > On Thursday, April 30, 2015 at 8:01:49 AM UTC-4, Chris Lerum wrote: >> >> you could try, in the model, self.table_name = "seven_gallery_photos" etc. >> >> On Thu, Apr 30, 2015 at 4:09 AM, Rafael Adel <[email protected] >> <javascript:>> wrote: >> >>> Are you sure about this ? If so, is there a way to make it working >>> without changing table names ? >>> >>> >>> On Thursday, April 30, 2015 at 3:45:46 AM UTC+3, Chris Lerum wrote: >>>> >>>> In short, yes. See this lovely article; notice the conspicuous absence >>>> of any talk of changing table names: >>>> >>>> http://blog.makandra.com/2014/12/organizing-large-rails-projects-with-namespaces/ >>>> >>>> On Wednesday, April 29, 2015 at 1:59:04 PM UTC-4, Rafael Adel wrote: >>>>> >>>>> I can see the only difference is that in my case there's namespace in >>>>> front of the table names and FK. But in yours there's none since it's a >>>>> normal app. >>>>> But is this the cause ? >>>>> >>>>> On Wednesday, April 29, 2015 at 6:53:18 PM UTC+3, Chris Lerum wrote: >>>>>> >>>>>> https://github.com/chrislerum/factory >>>>>> I tried whipping up an app with your code, the controller test passes >>>>>> fine for me, see if it works for you and compare. >>>>>> >>>>>> On Wednesday, April 29, 2015 at 10:32:47 AM UTC-4, Rafael Adel wrote: >>>>>>> >>>>>>> I'm trying to create a `photo` factory that's in a many to one >>>>>>> association with `gallery`. And I'm getting two errors, depending on >>>>>>> how I >>>>>>> specify the association between those two models. >>>>>>> >>>>>>> Here's the models: >>>>>>> >>>>>>> *Photo* >>>>>>> >>>>>>> belongs_to :gallery, class_name: "SevenGallery::Gallery" >>>>>>> >>>>>>> *Gallery* >>>>>>> >>>>>>> has_many :photos, class_name: "SevenGallery::Photo", foreign_key: >>>>>>> "seven_gallery_gallery_id", dependent: :destroy >>>>>>> >>>>>>> >>>>>>> >>>>>>> And the migrations >>>>>>> >>>>>>> >>>>>>> create_table :seven_gallery_galleries do |t| >>>>>>> t.string :title >>>>>>> t.timestamps null: false >>>>>>> end >>>>>>> >>>>>>> create_table :seven_gallery_photos do |t| >>>>>>> t.string :caption >>>>>>> t.string :image >>>>>>> t.references :seven_gallery_gallery, index: true >>>>>>> t.timestamps null: false >>>>>>> end >>>>>>> >>>>>>> >>>>>>> add_foreign_key :seven_gallery_photos, :seven_gallery_galleries >>>>>>> , on_delete: :cascade >>>>>>> >>>>>>> >>>>>>> >>>>>>> Now Here's my factories: >>>>>>> **Gallery**: >>>>>>> >>>>>>> >>>>>>> FactoryGirl.define do >>>>>>> factory :gallery, class: 'SevenGallery::Gallery' do >>>>>>> title "an event gallery" >>>>>>> factory :gallery_with_photos do >>>>>>> after(:build) do |gallery| >>>>>>> gallery.photos << FactoryGirl.create(:photo_one, >>>>>>> seven_gallery_gallery_id: gallery) >>>>>>> gallery.photos << FactoryGirl.create(:photo_two, >>>>>>> seven_gallery_gallery_id: gallery) >>>>>>> gallery.photos << FactoryGirl.create(:photo_three, >>>>>>> seven_gallery_gallery_id: gallery) >>>>>>> end >>>>>>> end >>>>>>> end >>>>>>> end >>>>>>> >>>>>>> >>>>>>> And **Photo**: >>>>>>> >>>>>>> >>>>>>> FactoryGirl.define do >>>>>>> factory :photo, class: "SevenGallery::Photo" do >>>>>>> >>>>>>> factory :photo_one do >>>>>>> end >>>>>>> >>>>>>> factory :photo_two do >>>>>>> end >>>>>>> >>>>>>> factory :photo_three do >>>>>>> end >>>>>>> >>>>>>> factory :photo_with_gallery do >>>>>>> gallery >>>>>>> end >>>>>>> end >>>>>>> end >>>>>>> >>>>>>> >>>>>>> >>>>>>> And here's the controller spec that generates the error: >>>>>>> >>>>>>> >>>>>>> it "changes is_main to true in self and false in rest" do >>>>>>> photo_one = FactoryGirl.create(:photo_with_gallery) >>>>>>> expect(photo_one.gallery).to be_a SevenGallery::Gallery >>>>>>> end >>>>>>> >>>>>>> >>>>>>> Whenever I run the test I get this error: >>>>>>> >>>>>>> >>>>>>> Failure/Error: photo_one = FactoryGirl.create(:photo_with_gallery) >>>>>>> ActiveModel::MissingAttributeError: >>>>>>> can't write unknown attribute `gallery_id` >>>>>>> # ./spec/controllers/seven_gallery/photos_controller_spec.rb: >>>>>>> >>>>>>> When I change the association part to be: >>>>>>> >>>>>>> >>>>>>> factory :photo_with_gallery do >>>>>>> association :gallery, factory: gallery >>>>>>> end >>>>>>> >>>>>>> I get this error: >>>>>>> >>>>>>> >>>>>>> Failure/Error: photo_one = FactoryGirl.create(:photo_with_gallery) >>>>>>> NoMethodError: >>>>>>> undefined method `name' for :photo_with_gallery:Symbol >>>>>>> # ./spec/controllers/seven_gallery/photos_controller_spec.rb:8 >>>>>>> >>>>>>> >>>>>>> **Backtrace**: >>>>>>> >>>>>>> >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/attribute.rb:138:in >>>>>>> >>>>>>> `with_value_from_database' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/attribute_set.rb:39:in >>>>>>> >>>>>>> `write_from_user' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods/write.rb:74:in >>>>>>> >>>>>>> `write_attribute_with_type_cast' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods/write.rb:56:in >>>>>>> >>>>>>> `write_attribute' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods/dirty.rb:96:in >>>>>>> >>>>>>> `write_attribute' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods.rb:373:in >>>>>>> >>>>>>> `[]=' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/associations/belongs_to_association.rb:83:in >>>>>>> >>>>>>> `replace_keys' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/associations/belongs_to_association.rb:14:in >>>>>>> >>>>>>> `replace' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/associations/singular_association.rb:17:in >>>>>>> >>>>>>> `writer' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/associations/builder/association.rb:123:in >>>>>>> >>>>>>> `gallery=' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:16:in >>>>>>> >>>>>>> `public_send' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:16:in >>>>>>> >>>>>>> `block (2 levels) in object' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:15:in >>>>>>> >>>>>>> `each' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:15:in >>>>>>> >>>>>>> `block in object' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:14:in >>>>>>> >>>>>>> `tap' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:14:in >>>>>>> >>>>>>> `object' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/evaluation.rb:12:in >>>>>>> >>>>>>> `object' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/strategy/create.rb:9:in >>>>>>> >>>>>>> `result' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/factory.rb:42:in >>>>>>> >>>>>>> `run' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:23:in >>>>>>> >>>>>>> `block in run' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/notifications.rb:166:in >>>>>>> >>>>>>> `instrument' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:22:in >>>>>>> >>>>>>> `run' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/strategy_syntax_method_registrar.rb:20:in >>>>>>> >>>>>>> `block in define_singular_strategy_method' >>>>>>> # >>>>>>> ./spec/controllers/seven_gallery/photos_controller_spec.rb:8:in `block >>>>>>> (3 >>>>>>> levels) in <module:SevenGallery>' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:177:in >>>>>>> >>>>>>> `instance_exec' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:177:in >>>>>>> >>>>>>> `block in run' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:385:in >>>>>>> >>>>>>> `block in with_around_and_singleton_context_hooks' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:343:in >>>>>>> >>>>>>> `block in with_around_example_hooks' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:474:in >>>>>>> >>>>>>> `block in run' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:614:in >>>>>>> >>>>>>> `block in run_around_example_hooks_for' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:247:in >>>>>>> >>>>>>> `call' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:247:in >>>>>>> >>>>>>> `call' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-rails-3.2.1/lib/rspec/rails/example/controller_example_group.rb:179:in >>>>>>> >>>>>>> `block (2 levels) in <module:ControllerExampleGroup>' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:333:in >>>>>>> >>>>>>> `instance_exec' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:333:in >>>>>>> >>>>>>> `instance_exec' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:387:in >>>>>>> >>>>>>> `execute_with' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:616:in >>>>>>> >>>>>>> `block (2 levels) in run_around_example_hooks_for' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:247:in >>>>>>> >>>>>>> `call' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:247:in >>>>>>> >>>>>>> `call' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-rails-3.2.1/lib/rspec/rails/adapters.rb:113:in >>>>>>> >>>>>>> `block (2 levels) in <module:MinitestLifecycleAdapter>' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:333:in >>>>>>> >>>>>>> `instance_exec' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:333:in >>>>>>> >>>>>>> `instance_exec' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:387:in >>>>>>> >>>>>>> `execute_with' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:616:in >>>>>>> >>>>>>> `block (2 levels) in run_around_example_hooks_for' >>>>>>> # >>>>>>> /home/rafael/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:247:in >>>>>>> >>>>>>> `call' >>>>>>> # /home/rafael/ >>>>>>> ... >>>>>> >>>>>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Ruby on Rails: Talk" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/rubyonrails-talk/roj0zJgpXVs/unsubscribe >>> . >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected] <javascript:>. >>> To post to this group, send email to [email protected] >>> <javascript:>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/rubyonrails-talk/d53dfd82-135c-4990-b21b-3d030accbbbc%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/rubyonrails-talk/d53dfd82-135c-4990-b21b-3d030accbbbc%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/5dbcfc10-d039-481e-9729-a74fd45ea6b7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

