现在,如果我为模型秀动作创建一个URL,我只需调用:
link_to model_instance
创建类似这样的东西,当时模型是User并且id是1:
/user/1
我喜欢自定义该行为,而无需遍历代码库中生成此类模型的URL的所有实例。改变背后的动机是避免在URL中滚动id,让任何人通过简单地增加id来发现其他条目。像
这样的东西/user/88x11bc1200
我是否可以简单地覆盖所选模型的URL生成方式?我正在使用RoR 4.x
答案 0 :(得分:1)
您必须更新两个地方。
在模型中
class User < ActiveRecord::Base
# Override the to_param method
def to_param
# Whatever your field is called
non_rolling_id
end
end
在控制器中
class UsersController < ApplicationController
def show
# Can't use `find` anymore, but will still come over as `id`
@user = User.find_by_non_rolling_id(params[:id])
end
end