Ruby on rails Rails:空嵌套资源包含具有零初始化字段的隐式条目

Ruby on rails Rails:空嵌套资源包含具有零初始化字段的隐式条目,ruby-on-rails,Ruby On Rails,试图将嵌套资源(名为“文件夹”)索引嵌入父级(名为“用户”)“显示”查看器,我发现了一个问题。在完成数据库创建/迁移之后(当尚未对“文件夹”表执行任何显式操作时),我创建了用户条目。在创建之后,此用户的“show”方法立即向我显示一个文件夹,其中包含NilClass字段。一个条目,无论显示哪个用户,默认情况下它总是包含这个为零的条目。我可以添加其他条目,但始终会显示此条目 还有一件有趣的事情:在rails console@user.folders中,返回空数组,其#每个方法都工作得很好(即在co

试图将嵌套资源(名为“文件夹”)索引嵌入父级(名为“用户”)“显示”查看器,我发现了一个问题。在完成数据库创建/迁移之后(当尚未对“文件夹”表执行任何显式操作时),我创建了用户条目。在创建之后,此用户的“show”方法立即向我显示一个文件夹,其中包含NilClass字段。一个条目,无论显示哪个用户,默认情况下它总是包含这个为零的条目。我可以添加其他条目,但始终会显示此条目

还有一件有趣的事情:在rails console@user.folders中,返回空数组,其#每个方法都工作得很好(即在console中,所有东西都工作正常,这个问题不会出现)

下面是嵌套资源的“创建”方法:

class FoldersController < ApplicationController
  def create
    @user = User.find params[:user_id]
    @user.folders.create params[:folder]
    redirect_to user_path @user
  end
我对Rails和基于web的应用程序都是新手,所以,如果有什么东西没有正确描述,请随意提问,并批评编码错误

Upd: UserController::创建方法:

def create
  @user = User.new(params[:user])

  respond_to do |format|
    if @user.save
      format.html { redirect_to @user, notice: 'User was successfully created.' }
      format.json { render json: @user, status: :created, location: @user }
    else
      format.html { render action: "new" }
      format.json { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end

我刚刚遇到了一个类似的问题。在您的表格中,您正在使用的标签

@user.folders.build
这将使用适当的用户id属性向文件夹对象添加空文件夹记录

在代码的下面,您正在迭代同一个folders对象,这就是您看到空记录的原因


如果您只需将表单代码放在文件夹代码表下面,您将看到空记录不再存在(因为它尚未创建!)

您的问题是“当您创建一个用户条目时,您得到的是一个该用户的文件夹条目,其值为零。但在控制台中,
user.folders
给出的是空数组”。如果我理解正确,请给出您的
userscoontroller
create
方法以及显示nil项的视图。@SamironPaul My UserController::create是scaffold生成的标准方法。我把它加到了上面的问题上。上面已经展示了查看器,有一些注释描述了NilClass的确切位置。
@user.folders.build