Используя AR, без написания SQL и предполагая, что ваши модели и ассоциации:
models / region.rb
class Region < ActiveRecord::Base
has_many :locations
end
model / location.rb
class Location < ActiveRecord::Base
belongs_to :region
end
Вы, безусловно, можете сделать:
postcode_name_with_region_code = Location.where(:id=>location_id).includes(:region).collect{|l| "#{l.postcode_name}, #{l.region.code}"}
Это сделает запрос, а затем использует Ruby для форматирования вашего результата (обратите внимание, что он вернет массив, так как я предполагаю, что может быть возвращено несколько записей).Если вам нужен только один элемент массива, вы можете использовать метод array.first для ссылки на него.
Вы также можете загрузить ассоциацию и построить строку из результата:
my_loc = Location.find(location_id, :include=>:region)
postcode_name_with_region_code = "#{my_loc.postcode_name}, #{my_loc.region.code}"