【发布时间】:2011-03-17 11:57:58
【问题描述】:
我是 Rails 的新手,我以为我终于弄明白了一些这种路由的东西,但整天都在绕着这个小圈子转。
我正在关注一个关于构建类似 twitter 的服务的教程,并且我已经从教程中获得了基础知识,但使用的是 Mongo 而不是 mySql。
我有 3 种类型的页面。 显示所有按日期排序的帖子的主页
显示来自特定用户的帖子的用户页面
显示来自用户朋友的帖子的帖子页面。
所以对于每一页,我都做了以下操作
1) 在相应的控制器中创建了一个方法来获取正确的帖子
2)创建了一个_posts.html.erb页面,显示参数各有不同
3) 在 index.html.erb 页面中为每个视图引用了部分。
控制器条目如下所示
定义索引 @posts = Post.all(:order => 'created_at DESC') 结尾或
默认帖子 @posts = Post.all(:conditions => {'user_id' => params[:id]}, :order => 'created_at DESC') 结尾部分是
@posts %>每个视图中都有一个 _posts.html.erb 文件,并且每个都略有不同
home/_posts.html.erb 看起来像这样
发表于 前 发布者posts/_post.html.erb 看起来像这样
发布者 52.hours.since %>现在奇怪的是,在所有页面 index.html.erb、users/show.html.erb、posts/index.html.erb 上,显示的部分是 posts/_post.html.erb .其他的被完全忽略了。
我的理解是 render :partial 会从当前视图中获取 @posts 并渲染 _posts.html.erb 。但这并没有发生,因为只有 posts/_post.html.erb 正在从所有视图中呈现。
我查看了 routes.rb 文件,但其中没有任何会导致此问题的内容。
谁能告诉我为什么我没有显示正确的部分?
-----------已编辑 --------------------------------
views的目录结构如下
意见 - 家 -_post.html.erb -index.htlm.erb - 布局 - 帖子 -_post.html.erb -index.html.erb -posts.html.erb - 会话 - 用户 -_post.html.erb -new.html.erb -show.html.erb我希望这会有所帮助。
【问题讨论】:
-
你能给出你的views目录结构吗?什么是什么有点令人困惑。
users/show.html.erb是作为子目录存在于posts内部还是外部。 -
感谢 shripad,我在问题中添加了目录结构。也许这会有所帮助。
标签: ruby-on-rails