图像标记的体系结构

时间:2012-09-26 11:11:00

标签: ruby-on-rails ruby-on-rails-3 url tagging

自从具有最佳结构的日子为我的目的选择以来,我没有进一步发展。我有:

class Image < ActiveRecord::Base
  attr_accessible :date, :description, :name, :image, :tag_ids

  has_many :taggings, :dependent => :destroy
  has_many :tags, :through => :taggings
  mount_uploader :image, ImageUploader
end

然后:

class Tag < ActiveRecord::Base
  attr_accessible :name
  has_many :taggings, :dependent => :destroy
  has_many :images, :through => :taggings
end

class Tagging < ActiveRecord::Base
  belongs_to :image
  belongs_to :tag
  attr_accessible :image_id, :tag_id
end

我现在有三个主要类别,所有图像都属于“太阳系”,“银河系”或“宇宙”。假设我有土星的图像,所以我将其标记为“土星”和“太阳系”。土星月亮的图像将进一步标记为“月亮”。仙女座星系的图像将被标记为“宇宙”和“银河”。

如果我想显示所有图片,例如太阳系的网址: www.website.com/solarsystem

应有链接到例如木星或土星。如果我点击土星,网址应为: www.website.com/solarsystem/saturn ......并且它将显示标有“土星”的所有图像。

在这种情况下,作为链接的类别结构(也将显示)应为:

主页&gt; <太阳系>土星

所有类别均可点击,并引导您进入该类别的图像。使用Image,Tag和Tagging模型,我发现很难实现这一切。例如。在/image/show.html我有问题显示类别结构的正确链接,因为它们依赖于图像的标记。例如。我需要说如果tag.name ='Saturn'那么第一个链接应该是“太阳系”。如果tag.name ='Galaxy',则第一个链接应为“Universe”。但是对于许多标签和组合,它会让人非常困惑。另外正确的网址(www.website.com/solarsystem/saturn)对我来说也不容易实现。

是否有一个很好的解决方案,可能是另一个模型结构,可能有一个自己的模型,适用于所有标签,如'土星'或'木星'?

0 个答案:

没有答案
相关问题