zoukankan      html  css  js  c++  java
  • 改变rails的路由中默认的id

    目的: /users/2 -> /users/jack

    使用to_param方法。

    不要改变id到string类型,你需要一个属性是唯一的,比如username,无论什么。

    在view里面,确保传递的参数不要是id 一定要是model

    <td><%= link_to p.name, parse_place_path(p) %></td>
    

     不是

    <td><%= link_to p.name, parse_place_path(p.id) %></td>
    

    在model里面,重新 to_param

    def to_param
        username
      end
    

     每个model在缺省状态下有一个to_param直

    @place = Place.find(params[:id])
    

    接返回id属性,那么我们更改这个就直接返回其他属性,很明了。

    在VC的show方法中

    @place = Place.find_by_username(params[:id])
    

     这样就可以了。

    如果你依旧想使用id但是URL可以不要单纯的id:/users/id 比如:/users/2-jack

    那么modle中

    def to_param
        "#{id}-#{username}"
      end
    

     VC中

    @place = Place.find(params[:id])
    

     ok了!

  • 相关阅读:
    js对象
    实习经历日志02
    前端实习经历日志01
    js变量提升
    WebApls-元素(offset, client, scroll)
    WebApls-Bom
    WebApls-DOM的核心总结
    WebApls-节点01
    javascript-
    Javascript-字符串对象
  • 原文地址:https://www.cnblogs.com/iosdev/p/2859933.html
Copyright © 2011-2022 走看看