我有两个模型,比如说 User
和 Group
我知道我可以使用不同的解决方案访问每个对象的 show 操作:
# PATH
link_to user.name, user_path(user)
link_to group.name, group_path(group)
# URL
link_to user.name, user_url(user)
link_to group.name, group_url(group)
但是 Rails 的魔力发生在
# PATH
link_to user.name, user_path(user)
link_to group.name, group_path(group)
# is equivalent to
# PATH
link_to user.name, user
link_to group.name, group
有没有办法可以插入以获取网址?
我可以这样写:
link_to user.name, send("#{user.class.name.downcase}_url", user)
但是有更干净的方法吗?
最佳答案
url_for 使用传入 ActiveRecord 时传递的对象调用 polymorphic_path()(以及其他一些情况)。你可以改用 polymorphic_url 来获得你想要的。
link_to object.name, polymorphic_url(object)
关于ruby-on-rails - 使用 url 而不是路径的 Rails link_to 对象插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21633163/