Ruby on rails 具有重写为param方法的友好ID
我正在重写用户模型的“to param”方法。我还替换了控制器查找方法。这样做有问题吗?现在一切似乎都好了 用户模型Ruby on rails 具有重写为param方法的友好ID,ruby-on-rails,Ruby On Rails,我正在重写用户模型的“to param”方法。我还替换了控制器查找方法。这样做有问题吗?现在一切似乎都好了 用户模型 def to_param name end 用户/控制器 @user = User.find_by_name(params[:id]) 我建议采取以下步骤: 确保名称是唯一的 确保用户模型的主键为“name”,而不是“id”(User.primary)。许多gem和模块依赖于此值是否正确。如果不是这样,以后可能会遇到难以调试的问题 查看ActiveRecord的“set_
def to_param
name
end
用户/控制器
@user = User.find_by_name(params[:id])
我建议采取以下步骤:
- 确保名称是唯一的
- 确保用户模型的主键为“name”,而不是“id”(User.primary)。许多gem和模块依赖于此值是否正确。如果不是这样,以后可能会遇到难以调试的问题
- 查看ActiveRecord的“set_primary_key”声明。这可能是一种更简单的方法来完成你正在做的事情
一般来说,使用id以外的主键是完全可以的。如果此主键不是自动生成的,则会更加困难,因此请注意这一点,确保您可以并检查它是否唯一。我建议采取以下步骤:
- 确保名称是唯一的
- 确保用户模型的主键为“name”,而不是“id”(User.primary)。许多gem和模块依赖于此值是否正确。如果不是这样,以后可能会遇到难以调试的问题
- 查看ActiveRecord的“set_primary_key”声明。这可能是一种更简单的方法来完成你正在做的事情
一般来说,主键不是id是完全可以的。如果该主键不是自动生成的,则更困难,因此请注意这一点,并确保您可以检查它是否唯一。而不是使用自动生成的id,您打算使用名称作为用户模型的主键吗?我想是的。我这样做是为了脚手架模型。不是使用自动生成的id,而是打算使用名称作为用户模型的主键吗?我想是的。我这样做的脚手架模型。