Ruby on rails 带有两个单词的模型的Rails位置
我正在用RubyonRails做一个API后端 我有一个模型,叫它Ruby on rails 带有两个单词的模型的Rails位置,ruby-on-rails,ruby,rest,Ruby On Rails,Ruby,Rest,我正在用RubyonRails做一个API后端 我有一个模型,叫它TestModel。当用户创建此方法的新记录时,我希望返回一个位置标题,其中包含新创建对象的URL(即用户可以使用GET访问它的位置),因此我尝试 render json: @test_model, status: :created, location: @test_model 不幸的是,rails无法给我位置,因为他似乎试图调用一个方法test\u model\u url,rails似乎将该方法解释为对象model的url,作
TestModel
。当用户创建此方法的新记录时,我希望返回一个位置
标题,其中包含新创建对象的URL(即用户可以使用GET访问它的位置),因此我尝试
render json: @test_model, status: :created, location: @test_model
不幸的是,rails无法给我位置,因为他似乎试图调用一个方法test\u model\u url
,rails似乎将该方法解释为对象model
的url,作为项test
的子对象
我如何才能正确地做到这一点?这与模型命名无关,更多的是与ruby on rails如何按照约定工作有关。参见本规范(尤其是第2.3部分) 这些帮助程序中的每一个都有一个对应的_url帮助程序(例如照片_url),该帮助程序返回相同的路径前缀,并带有当前主机、端口和路径前缀 ->您必须正确设置路由,然后_url和_路径帮助程序才能工作
您还应该遵守,因此您的模型应该命名为
TestModel
,而不是TestModel
我实际上将我的模型命名为TestModel
,这只是一个输入错误。现在我有了一个路由参考资料:test_model
,我想得到一个类似http://myhost.com/test_model/:id
,所以我尝试调用test\u model\u url
,但他似乎试图找到一条像test/:id/model
这样的路径,但它不存在。我认为应该是资源:test\u models
。您可以运行rake routes
查看设置了哪些路由。同样,输入错误。我使用了参考资料:test_models
好的,澄清一下,当你说API backend时,你指的是一个精简的Rails API项目(如Rails缺少几个有用的模块版本)?你试过这个位置:test_model_url(@test_model)
?是的。它以undefined method
test\u model\u url`响应这听起来像是由印刷错误引起的-确保您的模型命名正确,路由等正确。因为我怀疑它是否可以复制。