Ruby on rails 在rails应用程序中创建组并需要将设计用户保存到数据库

Ruby on rails 在rails应用程序中创建组并需要将设计用户保存到数据库,ruby-on-rails,Ruby On Rails,我正在rails应用程序中创建组,需要将用户保存到数据库中,至少我这样认为,这样我可以在显示页面上显示由用户电子邮件创建的组。我无法使用当前用户,因为每次登录时它都会更改。下面是我在GroupsController中使用并生成ActiveRecord::RecordNotFound的代码。因此,我需要知道如何将用户保存到数据库中,如果这是正确的方法,或者如何使其正确工作 用户模型 组控制器创建方法 群控制器新方法 你在这里的设置没有多大意义。在新操作中,不应搜索用户。如果您的路由使用正确,很可能

我正在rails应用程序中创建组,需要将用户保存到数据库中,至少我这样认为,这样我可以在显示页面上显示由用户电子邮件创建的组。我无法使用当前用户,因为每次登录时它都会更改。下面是我在GroupsController中使用并生成ActiveRecord::RecordNotFound的代码。因此,我需要知道如何将用户保存到数据库中,如果这是正确的方法,或者如何使其正确工作

用户模型 组控制器创建方法 群控制器新方法
你在这里的设置没有多大意义。在新操作中,不应搜索用户。如果您的路由使用正确,很可能您甚至无法获得parma[:id]。create方法也是如此,正如名字所说,它应该创建一个新的用户记录,而不是搜索它

新操作应该只创建一个新记录,而不保存

def new
  @user = User.new
  ... # no building of groups here, since record is still empty, does not even have an id
end
现在,它应该使用这个用户对象在new.html.erb中呈现输入表单

用户提交新表单后,将以创建操作结束。现在,您将创建一个新用户并实际保存在数据库中:

def create
  @user = User.new(params[:user])
  if @user.save
    # maybe create some groups here
    redirect_to @user
  else
    render :action => "new"
  end
end
到目前为止,这与设计和用户身份验证没有多大关系

这只是一个粗略的概述,向您展示了在任何好的RoR教程中都可以找到的最常见的流程 否则,您的问题不太清楚您到底想做什么,以及这与Desive和当前用户有什么关系。 最有可能的是,你会有一些控制器和操作,让用户看到他的电子邮件、组和其他特定于用户的数据。在这种情况下,这些控制器必须在登录后使用当前用户。
许多项目都有管理界面的附加功能,允许特定用户查看用户及其数据的列表。在这种情况下,您将使用当前用户来确保该用户具有管理员权限以及其他查找和搜索功能,以显示受管理用户的数据。

我不想在此处创建新用户,而是试图将现有用户与新组相关联。我该怎么做
t.belongs_to :user
def create
   @user = User.find(params[:id])
    @group = @user.groups.build(params[:id])
    respond_to do |format|
      if @group.save
        format.html { redirect_to @group, notice: 'Group was successfully created.' }
        format.json { render json: @group, status: :created, location: @group }
      else
        format.html { render action: "new" }
        format.json { render json: @group.errors, status: :unprocessable_entity }
      end
    end
  end
 def new
    @user = User.find(params[:id])
    @group = @user.groups.build(params[:id])

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @group }
    end
  end
def new
  @user = User.new
  ... # no building of groups here, since record is still empty, does not even have an id
end
def create
  @user = User.new(params[:user])
  if @user.save
    # maybe create some groups here
    redirect_to @user
  else
    render :action => "new"
  end
end