我正在开发一个rails应用程序,我有一个Dashboard::user(Dashboard/user)控制器,我希望用户通过站点的后端更新他们的博客文章这很好,但当我试图获取用户创建的最新博客文章的列表时,我会得到一个错误。
仪表板/用户控制器

def content
  @blog = Blog.new
  render ('content')
end

仪表板/博客/博客列表.html.erb
<%= div_for(:dashboard ,blog) do %>
  <%= link_to image_tag(blog.preview.url(:thumb)), dashboard_blog_path(blog) %>
  <h1><%= link_to (blog.title),dashboard_blog_path(blog) %></h1>
   <p><%= truncate blog.excerpt, length: 160 %></p>
  <%= blog.published_at %>
  <%= blog.site_id %>
<% end %>

控制器
def content
  @site = Site.find_by_subdomain!(request.subdomain)
  @blogs = @site.blogs.all
  @blog = Blog.new

  render ('content')
end

content.html.erb内容
<%= render :partial => 'dashboard/blogs/blog_list', :locals => {:blogs => @blog} %>

为什么这不起作用?

最佳答案

我最好的猜测是从未设置局部变量blog@blog将在部分中可用,但blog仅在显式设置时可用,例如,如果通过

render :partial => "blogs/blog_list", :locals => {:blog => @blog}

有关部分的详细信息,请参见http://apidock.com/rails/ActionView/Partials

关于ruby-on-rails - 未定义的局部变量或方法“博客”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10220280/

10-14 06:46