【发布时间】:2013-11-02 10:00:55
【问题描述】:
我在 Rails 中遇到以下问题,我不知道如何解决。我构建了一个测试网络应用程序,一个带有房地产广告的公告板,例如http://www.trulia.com/ 的简单版本,显然用户可以将广告添加到他们可以在他们的“办公室”中找到的网站,这就是问题出现的地方。我有 8 种类型的广告,如公寓、办公室、车库等,因此我需要能够检索属于某个特定用户的广告,并且我不想向所有 8 个表发出 sql 请求以显示该用户的广告,例如,如果用户只有 1 个关于出售公寓的广告。 所以我需要一些东西而不是
@garages = Garage.where("user_id = #{current_user.id}")
@flats = Flat.where("user_id = #{current_user.id}")
@offices = Office.where("user_id = #{current_user.id}")
..... and so on
我有用户模型,所以所有广告都属于某个用户,我正在考虑创建一个多态表,该表将属于用户并包含有关用户邀请的所有广告的信息 它将被命名,例如,“广告”,它将有 3 列,user_id、advertisable_id、advertiseble_type,并且很容易获取属于某个特定用户的所有行,但我不知道它是否可能让 Rails 只从“advertisable_type”中的那些表和“advertisable_id”中的那些表中获取广告,我希望你明白我的意思。那么,对新手有什么建议吗? :)
【问题讨论】:
标签: mysql ruby-on-rails database activerecord