you could try, in the model, self.table_name = "seven_gallery_photos" etc.

On Thu, Apr 30, 2015 at 4:09 AM, Rafael Adel <rafael.ade...@gmail.com>
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
> rubyonrails-talk+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> 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 rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CAG4BQ-LfohGbf%3DNmQJWA2QscJ81JLVz62DHN4Kknh5xFQX0-PA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to