Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 model_path()方法是如何工作的_Ruby On Rails - Fatal编程技术网

Ruby on rails model_path()方法是如何工作的

Ruby on rails model_path()方法是如何工作的,ruby-on-rails,Ruby On Rails,我是RubyonRails新手,为了学习,我一直在玩一些开源代码 我在理解model\u路径(@model)方法返回什么以及如何更改它时遇到了一些问题。具体来说,我有一个带有id和slug的模型,由于某种原因model\u path(@model)总是返回带有slug的路径,而不是id 有没有关于为什么会这样以及我如何改变这种行为的想法 model_path(@model) 将生成此URL /model/:id 它将用任何@model.替换:id。to_param返回谢谢!代码现在更有意义

我是RubyonRails新手,为了学习,我一直在玩一些开源代码

我在理解
model\u路径(@model)
方法返回什么以及如何更改它时遇到了一些问题。具体来说,我有一个带有
id
slug
的模型,由于某种原因
model\u path(@model)
总是返回带有
slug
的路径,而不是
id

有没有关于为什么会这样以及我如何改变这种行为的想法

model_path(@model) 
将生成此URL

/model/:id

它将用任何
@model.替换
:id
。to_param
返回谢谢!代码现在更有意义了。是否有一种简单的方法可以生成一个添加自定义路由的路径。匹配“/:id/:slug',:to=>“您的_控制器#显示”,:as=>:自定义_模型。然后,您可以在视图中使用此自定义\模型\路径(@model.id、@model.slug)。但是我觉得这不是一个好的解决方案,最好让to_param方法返回id和slug,这样url就会是这样的“/model/12 blabla”我也喜欢12 blablah,但是控制器使用params[:id]不是更难吗?为了找到模型实例,它需要解析slug或id,对吗?如果您使用的是MySQL,那么不需要解析。使用这些参数进行开箱即用的工作