Надеюсь, я правильно понял.Что касается получения необходимого предмета, то желаемый регион и категория из него.
item = Item.find(item_id)
region = item.regions.where(:id => region_id)
category = item.categories.where(:id => category_id)
Еще одно предложение, вам лучше предоставить форму множественного числа для ваших ассоциаций.object.collections
интуитивно понятно для ассоциации has_many
.Обратите внимание, что Rails будет по-прежнему работать с приведенным выше кодом, но это не следует принципу CoC (соглашение о конфигурации) Rails.Если вы будете следовать соглашению, вам не придется делать много настроек.
Проверьте примеры здесь http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many
Лично я бы предпочел, чтобы мои ассоциации в модели предметов были:
class Item < ActiveRecord::Base
has_many :item_regions
has_many :regions, :through => :item_regions
has_many :item_categories
has_many :categories, :through => :item_categories