1

我在 Rails 中进行部分渲染时遇到了一些问题。

这是在我的 routes.rb 中:

namespace :blog do
  resources :posts, only: [:index, :show] do 
    resources :comments, only: [:new, :create]
  end
end

这是我的博客::PostsController:

def show
  @post = Post.find(params[:id])
  @comments = @post.comments
end

这是在 /views/blog/posts/show.html.erb

<%= render @comments %>

_comment.html.erb 部分位于 /views/blog/comments/

错误信息是:

Missing partial blog/comments/comment with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/home/mar1221/ruby/my_site/app/views"
4

1 回答 1

1

通常,您会传递部分名称(不带下划线),例如:

<%= render 'comment' %>

它将尝试_comment.html.erb从视图路径渲染部分。

部分可以在与父视图相同的目录中,在共享目录中,或在视图路径中包含的任何其他目录中。

查看:

http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials以获得更详细的解释,以及渲染部分时可以使用的其他选项。

于 2012-10-02T01:29:29.737 回答