小编tch*_*hen的帖子

Rails多态关系和link_to

这是我的架构

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
Run Code Online (Sandbox Code Playgroud)

我想使用link_to链接到菜单视图中的多态类,例如

<%= link_to menu.name, menu.menuable %>
Run Code Online (Sandbox Code Playgroud)

这有效,但是当我想要的是生成链接时,这将从数据库中检索可菜单对象.你可以想象如果我的菜单很大,这将会让我的应用程序陷入困境.

当我将可菜单字段视为多态时,Rails创建了menuable_type和menuable_id.我可以使用什么来生成多态页面的链接,而不是使用巨型switch语句编写辅助函数(例如,如果我有大量可菜单的'子类'?)

ruby ruby-on-rails polymorphic-associations

3
推荐指数
1
解决办法
1797
查看次数