Methods 未定义的方法'each';对于nil:NilClass,当从另一个控制器调用时
我试图触发groups/show视图中的所有帖子,但我得到了错误“未定义nil:NilClass的'each'方法”。有人能帮我吗 ~~对不起,我的错误编码行为 邮政署署长:Methods 未定义的方法'each';对于nil:NilClass,当从另一个控制器调用时,methods,controller,undefined,each,Methods,Controller,Undefined,Each,我试图触发groups/show视图中的所有帖子,但我得到了错误“未定义nil:NilClass的'each'方法”。有人能帮我吗 ~~对不起,我的错误编码行为 邮政署署长: class PostsController < ApplicationController def index @posts = Post.all end def show @post = Post.find(params[:id]) end def new @pos
class PostsController < ApplicationController
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
def new
@post = Post.new
end
def create
post = Post.create(permitted_params)
redirect_to post
end
def edit
@post = Post.find(params[:id])
end
def update
post = Post.find(params[:id])
post.update permitted_params
redirect_to post
end
def destroy
Post.destroy(params[:id])
redirect_to posts_path
end
def permitted_params
params.require(:post).permit(:message)
end
end
class GroupsController < ApplicationController
def index
end
def show
@group = Group.find(params[:id])
end
def new
@group = Group.new
end
def create
group = Group.create(permitted_params)
redirect_to group
end
def permitted_params
params.require(:group).permit(:name)
end
end
组控制器的“显示”操作中没有@post变量。 可能你需要一些表演动作,比如:
@posts = Post.where(group_id: @group.id)
另外,当从另一个文件夹渲染部分时,必须传递实例变量的值(如果我错了,请更正)。e、 g
并在groups\u controller.rb中通过“posts”而不是“@posts”进行迭代
def show
@group = Group.find(params[:id])
@posts = Post.where(group_id: @group_id)
end
分组/show.html.erb
<div class="container">
<%= render 'posts/each', {posts: @posts} %>
<% if user_signed_in? %>
<p><%= link_to "Powrót", root_path %></p>
<p><%= link_to "Usuń wiadomość", @post, method: :delete, data: { confirm:'Jesteś pewien?' } %></p>
<% end %>
</div>
在posts/_each.html.erb中
<% posts.each do |post| %>
<ul><i><%= link_to post.message, post %></i></ul></br>
<% end %>
我假设:post属于组,组中有许多post
<%= render 'posts/each', {posts: @posts} %>
def show
@group = Group.find(params[:id])
@posts = Post.where(group_id: @group_id)
end
<div class="container">
<%= render 'posts/each', {posts: @posts} %>
<% if user_signed_in? %>
<p><%= link_to "Powrót", root_path %></p>
<p><%= link_to "Usuń wiadomość", @post, method: :delete, data: { confirm:'Jesteś pewien?' } %></p>
<% end %>
</div>
<% posts.each do |post| %>
<ul><i><%= link_to post.message, post %></i></ul></br>
<% end %>