在不同视图中将此代码作为部分代码运行时遇到问题。但是,如果我尝试直接访问它,这意味着 0.0.0.0:3000/posts/_dashboard 它可以工作。从不同的角度来看,我得到了undefined method each for nil:NilClass
class PostsController < ApplicationController
def _dashboard
@posts = Post.all
end
end
在帖子/ _dashboard.html.erb
下查看<% @posts.each do |p| %>
<%= p.title %>
<%= p.description %>
<%= p.image %>
<% end %>
路由
Rails.application.routes.draw do
devise_for :users
get "/site/home", to: "site#home"
get "/posts(/:action)", to: "posts#posts"
resources :posts
end
在不同的视图中
<%= render partial: "posts/dashboard" %> %>
答案 0 :(得分:0)
您需要将帖子传递给您的部分:
<%= render partial: "posts/dashboard", posts: @posts %>
编辑你的部分:
<% posts.each do |p| %>
<%= p.title %>
<%= p.description %>
<%= p.image %>
<% end %>
在控制器的部分渲染页面的操作中,添加:
@posts = Post.all