Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 具有重写为param方法的友好ID_Ruby On Rails - Fatal编程技术网

Ruby on rails 具有重写为param方法的友好ID

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_

我正在重写用户模型的“to param”方法。我还替换了控制器查找方法。这样做有问题吗?现在一切似乎都好了

用户模型

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,而是打算使用名称作为用户模型的主键吗?我想是的。我这样做的脚手架模型。