这是我的架构
class Menu < ActiveRecord::Base
belongs_to :menuable, :polymorphic => true
end
class Page < ActiveRecord::Base
has_one :menu, :as => :menuable
end
class Links < ActiveRecord::Base
has_one :menu, :as => :menuable
end
我想使用 link_to 链接到菜单视图中的多态类,例如
<%= link_to menu.name, menu.menuable %>
这行得通,但是当我只想生成一个链接时,它会从数据库中检索菜单对象。你可以想象,如果我的菜单很大,这真的会让我的应用程序陷入困境。
当我将 menuable 字段定义为多态时,Rails 创建了 menuable_type 和 menuable_id。我可以用什么来生成多态页面的链接,而不是用巨大的 switch 语句编写一个辅助函数(例如,如果我有大量可菜单的“子类”?)