如何使用子模型中的字段强化父模型?

时间:2011-01-16 14:02:37

标签: ruby-on-rails-3 mongoid slug

我想使用Mongoid来强化Rails 3中模型的url。问题是我想在slug中使用的字段位于子模型中。我正在使用mongoid-slug gem找到解决方案,到目前为止我的尝试是:

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

虽然这允许我通过调用building_path(building)来形成正确的URL,但该页面不包含正确的值。错误消息抱怨对象ID不正确,我不知道如何让Rails监听并通过to_param查找记录。

1 个答案:

答案 0 :(得分:0)

对于好奇,这就是我如何解决自己的问题。我意识到我需要改变来自

的show动作
@building = Building.find(params[:id])

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

瞧!它有效。