2011-01-16 1 views
0

Я хотел бы убрать URL-адреса для модели в Rails 3, используя Mongoid. Проблема в том, что поля, которые я хочу использовать в slug, находятся в дочерней модели. Я использую mongoid-slug драгоценный камень, чтобы найти решение этой проблемы, и моя попытка до сих пор это:Как убрать родительскую модель с полями из дочерней модели?

class Building 
    references_one :address 

    def to_param 
    address.to_param 
    end 
end 

class Address 
    referenced_in :building 

    field :houseno 
    field :street 

    slug :houseno, :street 
end 

В то время как это позволяет мне формировать правильный URL по телефону building_path(building), страница не содержит правильные значения. Сообщение об ошибке жалуется, что идентификатор объекта неверен, и я не уверен, как заставить Rails прослушивать и находить запись to_param.

ответ

0

Для любопытных, вот как я решил свою проблему. Я понял, что мне нужно использовать изменить шоу действий от

@building = Building.find(params[:id]) 

в

@building = Address.find_by_slug(params[:id]).building 

И вуаля! Оно работает.