Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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 使用参数从url获取用户名_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 使用参数从url获取用户名

Ruby on rails 使用参数从url获取用户名,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我似乎发现很难从带有参数的url中获取用户名,但在查找ID时会起作用 要从以下url获取id:www.foo.com/users/1/post/new,您需要使用: User.find(params[:id]) # same as User.find(1) 我想我也可以这样做,因为:www.foo.com/users/joe/post/new User.find_by(name: params[:name]) 如何使用find或find\u by方法从带有参数的url中获取用户名?谢谢在您的

我似乎发现很难从带有参数的url中获取用户名,但在查找ID时会起作用

要从以下url获取id:
www.foo.com/users/1/post/new
,您需要使用:

User.find(params[:id]) # same as User.find(1)
我想我也可以这样做,因为:
www.foo.com/users/joe/post/new

User.find_by(name: params[:name])

如何使用
find
find\u by
方法从带有参数的url中获取用户名?谢谢

在您的
用户
模型中,像这样覆盖
to_param
方法:

def to_param
  name
end
使用此代码,您将覆盖ActiveRecord的默认行为,因此当您链接到用户时,它将使用
名称
作为参数,而不是
id


另外,我建议您也看看gem,使用它可以实现这一目标。

用户
模型中,覆盖
to_param
方法如下:

def to_param
  name
end
使用此代码,您将覆盖ActiveRecord的默认行为,因此当您链接到用户时,它将使用
名称
作为参数,而不是
id


另外,我建议您也看看gem,使用它可以实现这一目标。

谢谢。您是否也有用于覆盖其他方法的web链接?您不需要覆盖其他方法。就这个,谢谢。您是否也有用于覆盖其他方法的web链接?您不需要覆盖其他方法。就这个。