Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8779347
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T19:45:52+00:00 2026-06-13T19:45:52+00:00

I am using Ruby on Rails v3.2.2. I have following model classes class Country

  • 0

I am using Ruby on Rails v3.2.2. I have following model classes

class Country < ActiveRecord::Base
  has_many :regions, :foreign_key => 'country_id'
end

class Region < ActiveRecord::Base
  belongs_to :country, :foreign_key => 'country_id'
  has_many :cities, :foreign_key => 'region_id'
end

class City < ActiveRecord::Base
  belongs_to :region, :foreign_key => 'region_id'
end

and I would like to make a City belongs_to :country.

I know that the simplest way to make that is to add a country_id database table column to the City database table and to state related ActiveRecord Associations, this way:

class Country < ActiveRecord::Base
  # ...
  has_many :cities, :foreign_key => 'country_id'
end

class City < ActiveRecord::Base
  # ...
  belongs_to :country, :foreign_key => 'country_id'
end

However, in order to store less database data, I think I may “use” the data already stored in the Region table since a city belongs to a region which in turn belongs to a country (this implies that a city belongs to a country) but, in this case, I have no idea on how to properly state ActiveRecord Associations for City and Country so to “exploit” mentioned relationship informations implicitly present “through” the Region model class.

How should I proceed?


Note: I am “forcing” to state the belongs_to :country ActiveRecord Association in the City model class because I would like to use the RoR :counter_cache feature (available only for belongs_to associations) in order to count cities present in a country.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T19:45:54+00:00Added an answer on June 13, 2026 at 7:45 pm

    Use the :through option. As I’ve seen in your comment in the answer below (which by the way, was correct), you’ll just have to add this:

    has_one :country, :through => :region
    

    to your City class. If you want to apply counter_cache on country for the cities, then you’ll have to establish the relationship in the country class as well, like this:

    has_many :cities, :through => :regions
    

    and then you can have your count column

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm using ruby 1.9.2 and rails 3.2.2. I have a 'domain' model (domain.rb): class
I am using Ruby on Rails v3.2.2. I have following associations with an alias_method
I am using Ruby 1.9.2 and Ruby on Rails 3.2.2. I have the following
I am using Ruby on Rails v3.0.9 and I have the following code in
I have created a blog application using Ruby on Rails which includes the ability
I am using Ruby on Rails 3.2.2 and MySQL. I have a method (an
I am using Ruby on Rails 3.2.2 and ruby 1.9 . I do have
I am using Ruby on Rails 3.2.2, cucumber-rails-1.3.0, rspec-rails-2.8.1, capybara-1.1.2 and factory_girl-2.6.3. I have
I have built a very simple blog application using Ruby on Rails. New to
I have a Rails 3.2.2 application using Ruby version 1.9.2. I have created basic

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.