Ruby on rails 当我尝试创建项目时,用户\u id为nil
我是Rails的新手,我有一个问题,我试图创建项目,但我创建的每个项目都有一个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])
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])
应该是谁登录的?