有没有办法覆盖 rails route helper 方法,以便它们以不同的方式处理模型实例?我刚刚创建了一个User
不继承自 的模型,ActiveRecord::Base
而是使用我编写的方法从 LDAP 数据库中检索用户。但是,现在所有的路由辅助方法都搞砸了。(例如,user_path(user)
给出/users/#<User:0x3df82a0>
而不是/users/002131
)
我尝试使用以下代码(放置在User
模型内部)覆盖该方法,但它似乎没有做任何事情。有任何想法吗?
class << Rails.application.routes.url_helpers
def user_path(user)
if user.class == User
users_path + "/#{user.id}"
else
users_path + "/#{user}"
end
end
end