Ruby on rails 当我尝试创建项目时,用户\u id为nil

Ruby on rails 当我尝试创建项目时,用户\u id为nil,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我是Rails的新手,我有一个问题,我试图创建项目,但我创建的每个项目都有一个user\u id为nil。如果我在localhost中创建该项并检查以确保它是在rails控制台中创建的,那么它将显示,但带有user\u id=nil。提前感谢您的帮助 用户是使用设计创建的 项目控制器 class ItemsController < ApplicationController def create @user = User.find(params[:user_id])

我是Rails的新手,我有一个问题,我试图创建项目,但我创建的每个项目都有一个
user\u id
nil
。如果我在localhost中创建该项并检查以确保它是在rails控制台中创建的,那么它将显示,但带有
user\u id=nil
。提前感谢您的帮助

用户是使用设计创建的

项目控制器

class ItemsController < ApplicationController

  def create
    @user = User.find(params[:user_id])
    @item = Item.new(item_params)
    @item.user = current_user
    if @item.save
      @item = Item.update_items(params[:items])
      redirect_to @user, notice: "Item was saved successfully."
    else
      flash[:error] = "Error creating item. Please try again."
      render @user
    end
  end

  private

  def item_params
    params.require(:item).permit(:name)
  end
end
class UsersController < ApplicationController
  # before_action :authenticate_user!

  def show
    @user = User.find(params[:id])
    @item = Item.new
    @items = @user.items
  end
end
class ItemsController
用户控制器

class ItemsController < ApplicationController

  def create
    @user = User.find(params[:user_id])
    @item = Item.new(item_params)
    @item.user = current_user
    if @item.save
      @item = Item.update_items(params[:items])
      redirect_to @user, notice: "Item was saved successfully."
    else
      flash[:error] = "Error creating item. Please try again."
      render @user
    end
  end

  private

  def item_params
    params.require(:item).permit(:name)
  end
end
class UsersController < ApplicationController
  # before_action :authenticate_user!

  def show
    @user = User.find(params[:id])
    @item = Item.new
    @items = @user.items
  end
end
class UsersController
我注释掉了不允许分配用户id的“先验证后验证”过滤器……愚蠢的错误

class ItemsControllerclass ItemsController < ApplicationController

  def create
    user = current_user
    @item = current_user.items.new(params[:items])
    if @item.save
      redirect_to current_user, notice: "Item was saved successfully."
    else
      flash[:error] = "Error creating item. Please try again."
      render @user
    end
  end

  private

  def item_params
    params.require(:item).permit(:name)
  end
end
def创建 用户=当前用户 @item=当前用户.items.new(参数[:items]) 如果@item.save 将_重定向到当前_用户,注意:“项目已成功保存。” 其他的 flash[:error]=“创建项目时出错。请重试。” render@user 结束 结束 私有的 def项目参数 参数要求(:项)。允许(:名称) 结束 结束 确保在模型中有适当的关联

class Item < ActiveRecord::Base
  belongs_to :user
  ...
end

class User < ActiveRecord::Base
  has_many :items
  ...
end
class项
对于此行
@user=user.find(params[:user\u id])
应该是谁登录的?