审议以下多变关系
class Person
has_many :photos, :as => :attachable
end
class Animal
has_many :photos, :as => :attachable
end
class Photo
belongs_to :attachable, :polymorphic => true
end
The view pages of a Person or Animal object contains a gallery of their respective photos. The pages contain the following code:
...
<%= link_to(image_tag(photo.image_url(:thumb).to_s), [@attachable, photo]) %>
...
然而,在我的照片的页面中,我想根据它是否属于个人或动物提供不同的信息。 例如,如果是个人,它就应当显示其身高、ets子清单;如果是动物,它就应当展示其繁殖、所有人等。
这样做的最佳解决办法是什么?
我可以考虑两种可能的解决办法:
One way could be to direct to a separate controller action in the photo for each class. Something like
<%= link_to(image_tag(photo.image_url(:thumb).to_s), show_person_path[@attachable, photo]) %>
<%= link_to(image_tag(photo.image_url(:thumb).to_s), show_animal_path[@attachable, photo]) %>
但 我认为,这种做法在多吗?
另一种做法是在每个人和动物阶层采取控制者行动,展示相应的信息。 彩礼应当与这一行动而不是上述行动联系起来,而且行动应当提供照片。
但 我感到,正如所展示的相应信息一样,对于每个阶层来说,没有什么值得自己采取行动。 也许帮助者足够了,但我不相信正确的做法(如果上述假设是真实的,请更正我)。