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了!

  • 相关阅读:
    flask虚拟环境
    db.Column
    flask_cors跨域请求
    app.config.from_object
    jquery链式原理.html
    swiper轮播
    jquery引用
    animate.html
    设置和获取html里面的内容.html
    jquery获取dom属性方法
  • 原文地址:https://www.cnblogs.com/iosdev/p/2859933.html
Copyright © 2011-2022 走看看