基于此documentation,rails URL生成器似乎接受完整对象来生成URL。
@comment = Comment.find(1)
comment_url(@comment, { host: 'google.com' } ) => google.com/comments/1
在我的生产环境中也是如此。但是在我的开发环境中,当我尝试以这种方式生成URL时,我得到了一个
ActionController :: UrlGenerationError:没有路由匹配/缺少必需的键:[:id]
错误。
在我的开发环境中,我可以使用对象的id成功生成一个url。
comment_url(@comment.id, { host: 'google.com' } ) => google.com/comments/1
在我看来基于某个地方的配置,您必须能够将对象或ID传递到rails 中的URL生成器。我的谷歌foo让我弄清楚这个配置可能是什么。有谁知道为什么我会在生产中看到这种不同的行为而不是同一个应用程序的开发?
答案 0 :(得分:1)
在讨论环境方面没有区别,如果你在生产或开发方面这样做并不重要。
唯一不同的是数据,也许@comment on development并没有填充一个具有ID的对象,因此它不适用于该示例。