Ruby on rails Rails如何链接到帖子或评论的作者?

Ruby on rails Rails如何链接到帖子或评论的作者?,ruby-on-rails,path,routes,author,Ruby On Rails,Path,Routes,Author,返回任何路由匹配项{:action=>“show”,:controller=>“profiles”,:id=>nil}缺少必需的键:[:id] 这是因为review.author\u id正确显示了作者id。但当作为参数传递到profile_path时,它确实起作用 将其更改为#review.author_id不会修复此错误 在我的网站的另一个模块中,它可以完美地工作 link_to review.author_id, profile_path(review.author_id) 我想这可能

返回任何路由匹配项{:action=>“show”,:controller=>“profiles”,:id=>nil}缺少必需的键:[:id]

这是因为review.author\u id正确显示了作者id。但当作为参数传递到profile_path时,它确实起作用

将其更改为#review.author_id不会修复此错误

在我的网站的另一个模块中,它可以完美地工作

 link_to review.author_id, profile_path(review.author_id)
我想这可能是因为user是一个类,而author不是,我可以将author\u id作为整数或索引直接传递到profile\u path吗?

无论如何,我解决了它

link_to "View Profile", profile_path(@story.user_id)
编辑:

显然,review.author\u id使profile\u path将其解释为一个对象,而to\s则告诉它将review.author\u id作为一个值


哪个配置文件路径也可以作为参数

No-its,因为您尚未将用户分配给
review.author
-its nil。您很可能错过了确保没有作者就无法创建评论的验证。但是review.author\u id返回作者的id,无论review.author是否为零,都无法将review.author\u id的值作为整数传递?您基本上只是在胡说它的工作原理。我们应该如何帮助你呢?因为我从你之前的问题中认识到了这段代码,所以
author
只是一个“别名关联”,它只是一个关联,其中关联的名称与类不同。它的工作原理与任何其他协会完全相同。是的,它有一个类。
review.author\u id
将以整数形式给出id-如果有。您应该关注的真正问题是为什么review.author\u id为nil。您只是做了一些非常错误的事情-路径帮助程序确实使用字符串。尝试
配置文件路径(“foo”)
。或者
profile\u path(review.author)
。我刚刚试过,它链接到一个不存在的用户。我觉得奇怪的是,它需要我来工作。但是是的,profile\u path确实将字符串作为参数,可能是因为它试图通过review.author\u id作为一个类,并且不知道我想要作为整数传递。to_s允许它作为值而不是对象/类进行传递。而“foo”之所以有效,是因为它是作为值而不是对象传递的,所以你在它上加上“i”只是强制传递值<代码>零到0。所以你真的只是掩盖了你应用程序中的错误。不,不是。创建一个函数,并开始查找为什么它是nil。或者您试图链接到一个根本没有保存的记录。
link_to review.author_id, profile_path(review.author_id.to_i) %>