首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails Singular Resources未按预期工作

Rails Singular Resources未按预期工作
EN

Stack Overflow用户
提问于 2013-12-22 18:14:01
回答 1查看 119关注 0票数 1

根据http://guides.rubyonrails.org/的单个资源,我通过这个命令rails g scaffold post -singular创建了post,但它创建了多个资源帖子。所以我把它改成

代码语言:javascript
复制
  get 'post', to: 'posts#show'

  resource :post

根据指南,这应该会显示帖子,但实际上它给出了错误,说Couldn't find Post without an ID

它还说我可以对单个路由(/post)和多个路由(/posts/45)使用相同的控制器,我如何做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2013-12-22 21:35:53

当访问指向要显示的单一路径时,系统不会向您提供ID,因此Post.find(params[:id])将无法工作,并会给出错误“无法找到没有ID的帖子”。由于没有提供ID参数,因此您需要像Post.find(1)那样硬编码ID,或者假设您有一个用户使用has_one post或belongs_to post,则执行类似current_user.post的操作。

如果您想同时使用单数路由'/post‘和复数路由’/post/45‘,则需要在show操作中考虑这两种情况,因为这两个路由将指向相同的操作。您的show操作将如下所示:

代码语言:javascript
复制
#app/controllers/posts_controller.rb
def show
  @post = params[:id] ? Post.find(params[:id]) : Post.find(45)
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20728304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档